【问题标题】:How do I sum unique values per column in Python? [duplicate]如何在 Python 中对每列的唯一值求和? [复制]
【发布时间】: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

我应该如何解决它?

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案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 个事件。我正在尝试计算每个帐户的唯一会话数,而不是会话总数。
    • 好吧,让我再写一次代码
    • 看到我更新了
    • 非常感谢您的帮助,它确实有效!
    • 你能接受答案吗?
    猜你喜欢
    • 2023-02-05
    • 1970-01-01
    • 2016-01-01
    • 2019-10-03
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2021-06-06
    相关资源
    最近更新 更多