如何在 Python 中对每列的唯一值求和? [复制]
Posted
技术标签:
【中文标题】如何在 Python 中对每列的唯一值求和? [复制]【英文标题】:How do I sum unique values per column in Python? [duplicate] 【发布时间】:2019-01-21 09:02:11 【问题描述】:我正在使用博客,并且拥有包含 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
我应该如何解决它?
【问题讨论】:
【参考方案1】: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
【讨论】:
在您的脚本中,您将 account_id 与会话 ID 混合在一起,但我期望的数字仍然不正确。在 account_id 1111 中,有 2 个 UNIQUE 会话,尽管有 5 个事件。我正在尝试计算每个帐户的唯一会话数,而不是会话总数。 好吧,让我再写一次代码 看到我更新了 非常感谢您的帮助,它确实有效! 你能接受答案吗?以上是关于如何在 Python 中对每列的唯一值求和? [复制]的主要内容,如果未能解决你的问题,请参考以下文章