这是数据
| 日期 |结存数量
| ---------------- | ----- |
| 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
如有帮助,请点击采纳按钮支持。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了
- ¥50 切换TabTip键盘的输入法
- ¥15 可否在不同线程中调用封装数据库操作的类
- ¥15 微带串馈天线阵列每个阵元宽度计算
- ¥15 keil的map文件中Image component sizes各项意思
- ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
- ¥15 划分vlan后,链路不通了?
- ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据