我正在嘗試從 curr_value 功能創建新的列功能。在這里,我想從之前的當前值中獲取值,使用df.curr_value.shift(fill_value=-1)I 可以獲取之前的值。如何僅將移位應用于唯一的“uid”列。例如,在下面的示例中,我想將移位應用于 uniqie ID 值。 df[df['uid']==1].curr_value.shift(fill_value=-1)pandas 中還有其他方法可以讓我不需要迭代唯一的 uid 值嗎?import pandas as pdimport numpy as npevents = np.array([[1, 1, 1], [1, 2, 4], [1, 3, 3], [1, 3, 4], [2, 1, 4], [2, 2, 3]])df=pd.DataFrame(data=events, columns=["uid", "eid", "curr_value"])
1 回答

ibeautiful
TA貢獻1993條經驗 獲得超6個贊
是的,我們可以這樣做groupby
df['pre'] = df.groupby('uid')['curr_value'].shift(fill_value=-1)
Out[5]:
0 -1
1 1
2 4
3 3
4 -1
5 4
Name: curr_value, dtype: int32
添加回答
舉報
0/150
提交
取消