Pandas 如何从groupby对象中选择列
在本文中,我们将介绍在Pandas中如何从groupby对象中选择列。在统计分析中,groupby是一个常用的函数,它允许我们将数据按照某些条件进行分组,通过对每个组进行汇总,可以更好地理解数据。
阅读更多:Pandas 教程
创建一个groupby对象
为了演示如何从groupby对象中选择列,我们需要先创建一个groupby对象。在本例中,我们将使用一个包含以下几列的数据集:国家、洲、GDP和人口。
import pandas as pd
data = {'country':['China', 'India', 'USA', 'Brazil', 'Russia', 'Japan'],
'continent':['Asia', 'Asia', 'North America', 'South America', 'Europe', 'Asia'],
'GDP':[14227, 2875, 21433, 2065, 1686, 5081],
'population':[1393000000, 1369000000, 329500000, 211000000, 144000000, 126500000]}
df = pd.DataFrame(data)
接下来我们按照洲的分类进行groupby。
grouped = df.groupby('continent')
## 选择一个列
如果我们想要从groupby对象中选择一个列,我们可以使用以下代码。
grouped['GDP'].sum()
输出结果如下:
continent
Asia 19383
Europe 1686
North America 21433
South America 2065
Name: GDP, dtype: int64
上面的代码将groupby对象中的’GDP’列进行求和,并输出每个洲的GDP总和。
选择多个列
如果我们想选择多个列,我们可以使用以下代码。
grouped[['GDP', 'population']].sum()
输出结果如下:
GDP population
continent
Asia 24483 2897000000
Europe 1686 144000000
North America 21433 329500000
South America 2065 211000000
上述代码将groupby对象中的’GDP’和’population’列进行求和,并输出每个洲的总和。
选择所有列
如果我们想要选择groupby对象中的所有列,我们可以使用以下代码。
grouped.apply(lambda x: x.sum())
输出结果如下:
GDP population
continent
Asia 24483 2897000000
Europe 1686 144000000
North America 21433 329500000
South America 2065 211000000
上述代码将groupby对象中的所有列进行求和,并按照洲的分类进行输出。
总结
在本文中,我们介绍了如何在Pandas中从groupby对象中选择列。简而言之,我们可以通过在groupby对象上使用列名来选择特定的列,也可以通过使用一个列名列表来选择多个列。另外,我们也可以选择所有列,然后对它们进行处理和汇总。
极客教程