weixin_43428945 2019-09-22 16:43 采纳率: 0%
浏览 3015

python Dataframe获取一列数,每个数是前面几个数的和;看似简单,细思有点意思

原始数据和要求如下:
图片说明
也就是说要求得到的二月份的数据是是原有的一二月的总和,三月份的数据是原有数据一二三月的总和,以此类推
恳请大神出手相助,看看用python怎么样把这列数据按要求弄出来,谢了

  • 写回答

3条回答

  • _Molala_ 2022-06-03 18:19
    关注

    使用DataFrame的apply函数就ok啦,我下面用几个小例子展示以下

    import pandas as pd
    
    # 定义一个全局变量
    s = 0
    
    
    def f1(x):
        global s
        s = x['QTY'] + s  # 每次使用全局变量来叠加返回
        return s
    
    
    # 创建一个类似你的DataFrame
    d = [['Jan', 271], ['Feb', 109], ['Mar', 126], ['Apr', 123]]
    df = pd.DataFrame(d, columns=['Month', 'QTY'])
    print(df)
    print('---------------------')
    # 使用DataFrame自带的函数apply,具体去看一下官方文档吧~也很好理解
    res = df.apply(f1, axis=1)
    # 生成是Series类型的数据
    print(res, type(res))
    print('---------------------')
    # 再将生成出来的Series加在原DataFrame上
    df['Sub_sum'] = res
    print(df)
    

    最后结果输出为:

      Month  QTY
    0   Jan  271
    1   Feb  109
    2   Mar  126
    3   Apr  126
    ---------------------
    0    271
    1    380
    2    506
    3    629
    dtype: int64 <class 'pandas.core.series.Series'>
    ---------------------
      Month  QTY  Sub_sum
    0   Jan  271      271
    1   Feb  109      380
    2   Mar  126      506
    3   Apr  126      629
    
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?