分组依据中的每个项目

时间:2018-08-25 23:00:04

标签: python pandas group-by

copy_df = df.copy()
copy_df = copy_df.groupby(['STNAME'])
states_pop = pd.DataFrame(columns=['pop'])
for i, c in copy_df:
    states_pop.loc[i] = [**c.sort_value**s(by='CENSUS2010POP', ascending=False)[1:4]['CENSUS2010POP'].sum()]

这很好,但是我的疑问是-不应该是i.sort_values而不是c.sort_values。我的每一项都是一个系列,而不是一个数据框,对吧?

1 个答案:

答案 0 :(得分:1)

Pandas official documentation

  

.groupBy(...)[...]返回:GroupBy对象

该对象可以充当字典,其中键是对象被分组的列的可能值,而值是具有相应分组数据的新数据框。

因此,可以按以下方式迭代分组依据的结果:

for name, group in groupedDataFrame:
    (...)
    # group is a new dataFrame

因此,是为了分组(在您的情况下为c)而不是为字符串(在您的情况下为i)命名,您必须对其应用dataframe操作。

您可以通过以下操作进行检查:

    print(type(name), type(group))

我建议您检查以下link