说我有以下DataFrame
:
In [46]: timestamp = pd.date_range(start='1/1/2018', end='1/2/2018', freq='T')
In [47]: df = pd.DataFrame(timestamp, columns=['timestamp'])
In [48]: df['user'] = np.random.randint(10, size=len(timestamp))
In [49]: df['clicked'] = np.random.randint(2, size=len(timestamp))
其中每一行表示在给定的user
中clicked
是否具有timestamp
。
我想添加一个新列,其中每一行的值将是当前行的用户在该行中具有clicked
(即值为1
)的次数。当前行timestamp
前一个小时。
这怎么办?
答案 0 :(得分:2)
尝试:
df = df.set_index('timestamp')
hour_count = df.groupby(['user'])['clicked'].rolling('1H').sum()
df =df.assign(rolling_sum=hour_count.reset_index(level=0, drop=True)).reset_index()