Python數據處理:月中某天的數量等於這天前面所有的數量和加上當天的數量,請問有什麼方法更好處理?

CSDN問答 2021-12-30 07:00:09 阅读数:1,004

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://primo.wiki/2021/12/202112281555344705.html