【问题标题】:How to perform aggregate options on one groupby column, giving two column outputs如何在一个 groupby 列上执行聚合选项,给出两列输出
【发布时间】:2015-08-13 10:03:22
【问题描述】:

我正在对 groupby 数据框执行一堆聚合统计信息。特别是对于一列ios_id,我想要一个计数和一个不同的计数。我不确定如何将其输出到具有不同名称的两个独立列。截至目前,不同的计数只是覆盖计数。

如何将 ios_id 列的不同计数和计数输出到两个单独的列?

df_new = df.groupby('video_id').agg({"ios_id": np.count_nonzero,
                                     "ios_id": pd.Series.nunique,
                                     "feed_position": np.average,
                                     "time_watched": np.sum,
                                     "video_length": np.sum}).sort('ios_id', ascending=False)

【问题讨论】:

  • ios_id 是对要对其执行统计的列的引用。如果我更改名称,则没有什么可参考的。

标签: python pandas


【解决方案1】:

这样的事情应该可以工作。注意 iOS_id 的嵌套字典结构。

df_new = df.groupby('video_id').agg({"ios_id": {"count": "count",
                                                "distinct": "unique"},
                                     "feed_position": np.average,
                                     "time_watched": np.sum,
                                     "video_length": np.sum})

更多详情请参考Naming returned columns in Pandas aggregate function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2022-01-03
    • 2018-05-01
    • 2012-11-25
    • 2017-07-02
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多