python

您所在的位置:网站首页 groupby使用 python

python

2022-12-22 12:01| 来源: 网络整理| 查看: 265

循环将Groupby对象转换为DataFrame对象 时间:2018-06-28 07:48:18

标签: python pandas dataframe

我有一个像这样的数据框df

No Country Sex Age Group 1 Spain M Young 2 Norway F Middle 3 Mexico M Elderly ...

我的目标是首先根据国家/地区对数据进行分组,然后使用.value_counts()

根据性别和年龄组进行分析

因此,我在groupby上使用了df2 = df.groupby(df.Country)并像这样循环

for d in df2: print(type(d))

我得到以下输出:

...

我想使用

for d in df2: print(pd.DataFrame(d).Sex.value_counts())

但我收到此错误

DataFrame constructor not properly called!

昨天我问过类似的question,但这仅限于一个非常特殊的查询。我想学习的是知道如何将图层“分组”为块,然后对这些特定的块进行分析。

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为更好的方法是使用:

s = df.groupby('Country').Sex.value_counts() print (s) Country Sex Mexico M 1 Norway F 1 Spain M 1 Name: Sex, dtype: int64

但是如果需要使用循环是必要的,可以通过添加另一个变量i来解压group和df的元组名称:

df2 = df.groupby(df.Country) for i, d in df2: print(type(d))

或使用GroupBy.apply:

def func(x): print (x) a = x.Sex.value_counts() #another code return a df2 = df.groupby(df.Country).apply(func)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3