【发布时间】:2017-07-01 12:42:28
【问题描述】:
如果我在 mysql 表上进行以下分组
SELECT col1, count(col2) * count(distinct(col3)) as agg_col
FROM my_table
GROUP BY col1
我得到的是一个三列的表格
col1 col2 agg_col
我怎样才能在 pandas 数据框上做同样的事情?
假设我有一个包含三列 col1 col2 和 col3 的 Dataframe。按操作分组
grouped = my_df.groupby('col1')
将返回按 col1 分组的数据
还有
agg_col_series = grouped.col2.size() * grouped.col3.nunique()
将返回与 sql 查询中的聚合列等效的聚合列。但是如何在分组数据框中添加它?
【问题讨论】:
-
这可能有助于您操作 groupby 对象吗? stackoverflow.com/questions/10373660/…
-
您确定您的 SQL 生成三列吗? SELECT 和 GROUP BY 子句中缺少 IMO
col2... -
能否提供一个小的可重现数据集和想要的数据集?
-
同意@MaxU,当您将
SELECT中的两个聚合相乘时,您的SQL 应该只输出2 列。