Pandas系列活动日志

2024-04-25 01:39:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我输入了一个csv(USERID,Datetime) 为了分析我的用户的活动,我想生成一个熊猫系列,索引是日期,列是我的用户(多个系列)。 这些值将是在该日期(例如:Day)内聚合的每个用户的活动的总和

提前谢谢


Tags: csv用户datetimeuseridday总和
1条回答
网友
1楼 · 发布于 2024-04-25 01:39:17

虚假数据

n = 100
np.random.seed(1)
userid = np.random.randint(0, 10, n)
datetime = np.random.randint(0, 10, n) + pd.Timestamp('2016-1-1', freq='D')
activity = np.random.randint(0,1000, n)
df = pd.DataFrame({'USERID':userid, 'Datetime':datetime, 'activity':activity})
df.head(10)

    Datetime  USERID  activity
0 2016-01-10       5       788
1 2016-01-01       8        44
2 2016-01-03       9       271
3 2016-01-01       5       670
4 2016-01-08       0       475
5 2016-01-02       0       910
6 2016-01-08       1       499
7 2016-01-10       7       787
8 2016-01-09       6       251
9 2016-01-05       9       666

解决方案

df.groupby(['Datetime', 'USERID'])['activity'].sum().unstack(fill_value=0)

USERID         0    1     2     3     4     5     6     7     8     9
Datetime                                                             
2016-01-01     0  166  1091  1878   583   670     0  1524   577   881
2016-01-02   910    0     0   810  2146   706   182   138  1157     0
2016-01-03     0    0     0     0   433     0  1955  1914   566   561
2016-01-04    51  407   598     0     0     0   440   783     0     0
2016-01-05     0  324   662     0     0     0     0   990    79  2849
2016-01-06     0  959     0   230   878     0     0   656   879   300
2016-01-07  1390  100     0   575     0     0     0   806    87  1243
2016-01-08   975  499   503     0   657     0   403   755     0  1271
2016-01-09   342    0   739   617     0  1297   251  1207   324   458
2016-01-10   963  832     0     0   975  1179     0   787   717   145

相关问题 更多 >