对每一行 pandas 过去 12 个月的列值进行求和

2024-03-11

我对每个 ID 都有一个这样的数据集;

Months ID AnnualSalaryChange
2020-12-01 1 0
2020-11-01 1 1
2020-10-01 1 0
2020-09-01 1 0
2020-08-01 1 0
2020-07-01 1 0
2020-06-01 1 0
2020-05-01 1 0
2020-04-01 1 0
2020-03-01 1 1
2020-02-01 1 0
2020-01-01 1 0
2019-12-01 1 1
2019-11-01 1 0
2019-10-01 1 0
2019-09-01 1 0
2019-08-01 1 0
2019-07-01 1 0
2019-06-01 1 0
2019-05-01 1 0
2019-04-01 1 0
2019-03-01 1 0
2019-02-01 1 1

我想要一个像 AnnualSalaryChangeSumFor12Months 这样的专栏。它应该是每行过去 12 个月(可变)的 AnnualSalaryChange 值的累积总和。对于每一行,它应该追溯到 12 个月前,并对截至该时间的值求和。如果没有 12 行需要求和,则可以对剩余行求和。

Months ID AnnualSalaryChange AnnualSalaryChangeSumFor12Months
2020-12-01 1 0 2
2020-11-01 1 1 3
2020-10-01 1 0 2
2020-09-01 1 0 2
2020-08-01 1 0 2
2020-07-01 1 0 2
2020-06-01 1 0 2
2020-05-01 1 0 2
2020-04-01 1 0 2
2020-03-01 1 1 2
2020-02-01 1 0 1
2020-01-01 1 0 2
2019-12-01 1 1 2
2019-11-01 1 0 1
2019-10-01 1 0 1
2019-09-01 1 0 1
2019-08-01 1 0 1
2019-07-01 1 0 1
2019-06-01 1 0 1
2019-05-01 1 0 1
2019-04-01 1 0 1
2019-03-01 1 0 1
2019-02-01 1 1 1

I tried;

df['ChangeSum']=df.groupby(['ID','Year'])['AnnualSalaryChange'].cumsum()

但它并没有给出我真正想要的。我怎样才能做到这一点?谢谢。


尝试这个:

df = df.sort_values(['Months'])
df['AnnualSalaryChangeSumFor12Months'] = df['AnnualSalaryChange'].rolling(window=12, min_periods=1).sum()
df = df.sort_values(['Months'], ascending=False)

groupby 非常相似,但更长一些:

df = df1.sort_values(['ID', 'Months'])
df['AnnualSalaryChangeSumFor12Months'] = df.reset_index(drop=True).groupby(['ID'])['AnnualSalaryChange'].rolling(window=12, min_periods=1).sum().reset_index(level=0, drop=True)
df = df.sort_values(['ID', 'Months'], ascending=False)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对每一行 pandas 过去 12 个月的列值进行求和 的相关文章

  • 将数据从 python pandas 数据框导出或写入 MS Access 表

    我正在尝试将数据从 python pandas 数据框导出到现有的 MS Access 表 我想用已更新的数据替换 MS Access 表 在 python 中 我尝试使用 pandas to sql 但收到错误消息 我觉得很奇怪 使用 p
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Django:按钮链接

    我是一名 Django 新手用户 尝试创建一个按钮 单击该按钮会链接到我网站中的另一个页面 我尝试了一些不同的例子 但似乎没有一个对我有用 举个例子 为什么这不起作用
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • Shiny:动态数据框构建; renderUI、观察、reactiveValues

    我认为如何使用 Shiny 的 renderUI 功能动态子集数据的问题经常出现 但我很难理解何时使用 renderUI 带有 uiOutput 而不是其他功能 包括观察 反应 反应值甚至条件面板 我想构建一个完全交互式的数据框架 其中每个
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip

随机推荐