猿问

在 pandas 中应用行的移位函数组

我正在尝试从 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 pd

import numpy as np

events  = 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"])


心有法竹
浏览 109回答 1
1回答

ibeautiful

是的,我们可以这样做groupbydf['pre'] = df.groupby('uid')['curr_value'].shift(fill_value=-1)Out[5]: 0   -11    12    43    34   -15    4Name: curr_value, dtype: int32
随时随地看视频慕课网APP

相关分类

Python
我要回答