我正在使用网络日志,并且有包含account_id和session_id的数据。多个会话可以与一个帐户关联。我想创建一个包含account_id的新数据框,并计算与该帐户关联的唯一会话数。我的df看起来像这样:
account_id session_id
1111 de322
1111 de322
1111 de322
1111 de323
1111 de323
0210 ge012
0210 ge013
0211 ge330
0213 ge333
我正在使用以下代码:
new_df = df.groupby(['account_id','session_id']).sum()
我得到的输出如下:
account_id sessions
1111 de322
de323
0210 ge012
ge013
0211 ge330
0213 ge333
我期望的输出
account_id sessions
1111 2
0210 2
0211 1
0213 1
我应该如何解决?
答案 0 :(得分:0)
df = pd.DataFrame({'session': ['de322', 'de322', 'de322', 'de323', 'de323', 'ge012', 'ge012', 'ge013', 'ge333'],
'user_id': [1111, 1111, 1111, 1111, 1111, 210, 210, 210, 211],
})
print(df)
df = df.drop_duplicates().groupby('user_id').count()
print(df)
输出:
user_id
210 2
211 1
1111 2