【问题标题】:Add a COUNTIFS column to a Pandas DataFrame将 COUNTIFS 列添加到 Pandas DataFrame
【发布时间】:2017-07-05 15:49:18
【问题描述】:

我正在使用 Python 中的 Pandas DataFrame,它包含下图中的前 2 列:user_id、user_time。

我只需要添加第三列,这基本上是每个“user_id”的“user_time”序列。在 Excel 中,公式为:

=COUNTIFS([user_id],[@[user_id]], [user_time], "<="&[@[user_time]])

请问我该如何在 Python 中做到这一点?

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    你需要cumcount

    感谢Ding 的评论 - 如有必要,请使用sort_values

    df = df.sort_values(['user_id', 'user_time'])
    df['COUNTIFS'] = df.groupby('user_id').cumcount() + 1
    

    【讨论】:

    • 不错的一个!但我想添加df = df.sort_values(['user_id', 'user_time']) 会更准确地重现excel函数。
    • 如果您正在使用df = df.sort_values(...),您最好使用df.sort_values(..., inplace=True) 以避免复制。
    • 伙计们,你们太棒了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2014-05-19
    • 2020-12-28
    • 1970-01-01
    • 2020-03-04
    • 2018-07-27
    • 2021-08-13
    相关资源
    最近更新 更多