这是数据
| 日期 |结存数量
| ---------------- | ----- |
| 2021-11-01 |7.6 |
| 2021-11-02 |87.4 |
| 2021-11-05 |39.0 |
| 2021-11-06 |27.1 |
| 2021-11-08 |12.0 |
| 2021-11-10 |23.3 |
| 2021-11-11 | 28.6|
| 2021-11-12 |32.1 |
| 2021-11-13 |10.0 |
| 2021-11-14 |44.0 |
| 2021-11-15 |67.8 |
| 2021-11-26 |59.0 |
描述:1.二号的数量等于1号的数量加上2号的数量,同理:26号的数量等于前面25的数量和加上26的数量
2.没有的数据表示当天没有,既为0
问题:我现在想求出这个月每一天的数量分别多少?请问在Python中有什么方法可以更好的来处理这些数据?
Python数据处理:月中某天的数量等于这天前面所有的数量和加上当天的数量,请问有什么方法更好处理?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
CSDN专家-HGJ 2021-12-28 17:44关注使用pandas对原数据进行解析,循环遍历写入字典再转成数据框。代码如下:
import pandas as pd df=pd.read_csv('tt2.csv',sep='|') df=df.set_index('日期') d1=pd.date_range(start='2021-11-01',end='2021-11-30').astype(str) data={} for d in d1: if d in list(df.index): if d=='2021-11-02' or d=='2021-11-26': if (pd.to_datetime(d)-pd.Timedelta(1)).strftime('%Y-%m-%d') in list(df.index): data[d]=df.loc[d,'结存数量']-df.loc[(pd.to_datetime(d)-pd.Timedelta(1)).strftime('%Y-%m-%d'),'结存数量'] else: data[d] = df.loc[d, '结存数量'] else: data[d]=df.loc[d,'结存数量'] else: data[d]=0 res=pd.DataFrame(data.items(),columns=['日期','结存数量']) print(res.head())运行结果 :
日期 结存数量 0 2021-11-01 7.6 1 2021-11-02 79.8 2 2021-11-03 0.0 3 2021-11-04 0.0 4 2021-11-05 39.0如有帮助,请点击采纳按钮支持。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报