gpt4 book ai didi

pandas - 从不同组中减去值

转载 作者:行者123 更新时间:2023-12-01 22:53:05 28 4
gpt4 key购买 nike

我有以下数据框:

    A   X
Time
1 a 10
2 b 17
3 b 20
4 c 21
5 c 36
6 d 40

pd.DataFrame({'Time': [1, 2, 3, 4, 5, 6], 'A': ['a', 'b', 'b', 'c ', 'c', 'd'], 'X': [10, 17, 20, 21, 36, 40]}).set_index('时间')

期望的输出是:

Time    Difference
0 2 7
1 4 1
2 6 4

第一个差分 1 是从 20 中减去 21 的结果:(第一个 "c" 值- 最后一个 “b” 值)。

我也对 numPy 转换持开放态度。

最佳答案

GroupBy.agg 聚合与 GroupBy.first , GroupBy.last然后减去 last 列的移位值,并按位置省略第一行:

df = df.reset_index()
df1 = df.groupby('A',as_index=False, sort=False).agg(first=('X', 'first'),
last=('X','last'),
Time=('Time','first'))

df1['Difference'] = df1['first'].sub(df1['last'].shift(fill_value=0))

df1 = df1[['Time','Difference']].iloc[1:].reset_index(drop=True)
print (df1)
Time Difference
0 2 7
1 4 1
2 6 4

关于pandas - 从不同组中减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73825153/

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