python - 如何在一个 groupby 列上执行聚合选项,给出两列输出

标签 python pandas

我正在对 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 的嵌套字典结构。

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 :

关于python - 如何在一个 groupby 列上执行聚合选项,给出两列输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30548195/

相关文章:

python - flask : How to serve static files from template directory?

python-3.x - 如何使用 pandas get_dummies 函数消除键错误

python - Pandas 数据框在 read_excel 时更改浮点值

python - 当我从 pandas DataFrame 中采样一行后,如何获取一个单元格的值?

python - 函数缺少 1 个必需的位置参数

python - 使用 Datetimeindex 选择行

python - 使用 Python 从 cloudflare 网站下载文件

python - 如何使 Python 模拟从基类派生?

python - 更快地替代 iterrows

python - 当系列的顺序不同时使用testing.assert_series_equal