gpt4 book ai didi

python - 如何计算分组 df 的差异?

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:01 25 4
gpt4 key购买 nike

name      date      value
a 1/1/2011 3
b 1/1/2011 5
c 1/1/2011 7
a 1/2/2011 6
b 1/2/2011 10
c 1/2/2011 14

我这里有一个 df,其中的值是累积统计数据。所以 name: a date: 1/2/2011 的实际值是 3 而不是 6。要获得特定日期的实际值,我需要取当天的值减去前一天的值。我想计算每个日期每个名称的实际值。类似于 df.groupby(['name', 'date'])['value'].diff() 但此代码返回错误。

最终我需要的是

name      date   actual value
a 1/1/2011 3
b 1/1/2011 5
c 1/1/2011 7
a 1/2/2011 3
b 1/2/2011 5
c 1/2/2011 7

最佳答案

这可以在一行中以矢量化的方式完成。

import pandas as pd

df = pd.read_clipboard() # Reading from your question

df['value'] = df.groupby('name')['value'].diff(1).fillna(df['value'])

正如评论中所讨论的,在应用 fillna 以正确替换 NaN 值时,有必要引用原始的 'values 系列来自 diff(这发生在 'name' 中每个标签的第一个实例)。

关于python - 如何计算分组 df 的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54429926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com