将熊猫数据框按两列分组而不汇总

Posted

技术标签:

【中文标题】将熊猫数据框按两列分组而不汇总【英文标题】:Grouping pandas dataframe by two columns without summarizing it 【发布时间】:2022-01-07 20:39:17 【问题描述】:

我有一个覆盖美国不同州的 pandas 数据框。我想按两列 yearstate 进行分组,以便统计测试一些事情,例如死因,新生儿等,并绘制它。 我只能想出groupbypandas 函数,我必须在最后指定一个统计摘要,例如:

import pandas as pd
df = pd.read_csv(path + 'csvfile.csv')
grouped_df = df.groupby(['Year', 'State']).mean()

但是,我想仅按 yearstate 进行分组,但是使用 groupby 这样做我得到了:

import pandas as pd
df = pd.read_csv(path + 'csvfile.csv')
grouped_df = df.groupby(['Year', 'State'])

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000025720134688>

我该怎么做?

【问题讨论】:

你的意思是排序吗?使用 sort_values(['Year', 'State']) 看看你是否得到你要找的东西 【参考方案1】:

首先groupbyiterator 一样简化,所以指定之后的内容很重要 - 聚合函数、自定义函数..?


不确定group by the year and state alone是什么意思,如果需要MultiIndex 2列使用:

grouped_df = df.set_index(['Year', 'State'])

【讨论】:

以上是关于将熊猫数据框按两列分组而不汇总的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中按两列计算唯一记录?

熊猫数据框按列位置分组

如何在R中按两列分组

按两列排序,为啥不先分组呢?

按两列分组,其中一列是时间戳

Pandas 数据框:按两列分组,然后对另一列进行平均