Python数据处理:月中某天的数量等于这天前面所有的数量和加上当天的数量,请问有什么方法更好处理?

CSDN问答 2021-12-30 06:59:08 阅读数:131

Python 数据处理 数据 处理 月中

这是数据
| 日期 |结存数量
| ---------------- | ----- |
| 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中有什么方法可以更好的来处理这些数据?




采纳答案:

使用pandas对原数据进行解析,循环遍历写入字典再转成数据框。代码如下:

import pandas as pddf=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]=0res=pd.DataFrame(data.items(),columns=['日期','结存数量'])print(res.head())

运行结果 :

日期 结存数量0 2021-11-01 7.61 2021-11-02 79.82 2021-11-03 0.03 2021-11-04 0.04 2021-11-05 39.0

如有帮助,请点击采纳按钮支持。



其他答案2:

用pandas获取N行数据,然后对某列进行累加计算即可,如果不用pandas就用for循环+excel读取处理

版权声明:本文为[CSDN问答]所创,转载请带上原文链接,感谢。 https://ask.csdn.net/questions/7618000