朝歌晚酒º 2021-12-28 15:47 采纳率: 100%
浏览 33
已结题

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

  • 写回答

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
    
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 修改了问题 12月28日
  • 创建了问题 12月28日

悬赏问题

  • ¥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使用得具体信息,干了什么,传输了什么数据