【发布时间】:2022-11-20 23:08:44
【问题描述】:
我有一个 DataFrame df1 与 ID 和 Amount 在特定的 Dates 上。我尝试总结具有相同 ID 值的两个特定行的 Amount。
df1:
Date ID Amount
0 2022-01-02 1200 10.0
1 2022-01-02 1200 1.0
2 2022-01-02 1400 12.0
3 2022-01-02 1500 11.0
4 2022-01-03 1300 12.5
5 2022-01-03 1300 0.5
6 2022-01-03 1500 12.0
这将是所需的输出:
df1:
Date ID Amount
0 2022-01-02 1200 11 <-- 10+1
1 2022-01-02 1200 0 <-- -1
2 2022-01-02 1400 12
3 2022-01-02 1500 11
4 2022-01-03 1300 13 <-- 12.5+0.5
5 2022-01-03 1300 0 <-- -0.5
6 2022-01-03 1500 12
我尝试用 np.where() 替换 Amount,其中 shifted ID 值等于 ID 值。
对于可重复性:
import pandas as pd
df1 = pd.DataFrame({
'Date':['2022-01-02', '2022-01-02', '2022-01-02', '2022-01-02', '2022-01-03', '2022-01-03', '2022-01-03'],
'ID':[1200, 1200, 1400, 1500, 1300, 1300, 1500],
'Amount':[10, 1, 12, 11, 12.5, 0.5, 12]})
非常感谢您的帮助!
【问题讨论】:
-
您只想对紧邻的下一行或数据集中的任何地方执行此操作吗?换句话说,它是针对具有匹配“ID”的所有记录还是仅针对彼此相邻的记录。
-
如果整个数据集有一种有效的方法,那就太好了。非常感谢!
标签: python pandas dataframe shift