为每个给定时间戳记特定时间间隔的值

时间:2018-12-30 09:58:18

标签: python pandas

说我有以下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))

其中每一行表示在给定的userclicked是否具有timestamp

我想添加一个新列,其中每一行的值将是当前行的用户在该行中具有clicked(即值为1)的次数。当前行timestamp前一个小时。

这怎么办?

1 个答案:

答案 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()