Pandas 将GroupBy输出从Series转换为DataFrame

Pandas 将GroupBy输出从Series转换为DataFrame

在本文中,我们将介绍如何使用Pandas将GroupBy对象从Series转换为DataFrame。在Pandas中,GroupBy是一种重要的数据处理技术,它用于将数据集分组并执行相应的计算。当我们使用GroupBy操作时,它返回一些有用的信息,如计数、总和、平均值和分组方式。

阅读更多:Pandas 教程

创建GroupBy对象

首先,让我们创建一个示例数据集。

import pandas as pd

data = {'Country': ['China', 'Japan', 'USA', 'China', 'Japan', 'USA', 'China', 'Japan', 'USA'],
        'Year': [2015, 2015, 2015, 2016, 2016, 2016, 2017, 2017, 2017],
        'GDP': [11.06, 4.38, 18.21, 11.94, 4.94, 19.39, 12.24, 5.15, 20.94],
        'Population': [1377, 126, 324, 1404, 127, 326, 1427, 128, 328]}

df = pd.DataFrame(data)
Python

这是一个具有4列数据和9个行的简单数据集。我们有三个国家(中国、日本和美国)、三个年份(2015、2016和2017)和两个经济指标(GDP和人口)。

现在,我们可以使用GroupBy来计算每个国家的平均GDP。

grouped = df.groupby('Country')['GDP'].mean()
print(grouped)
Python

输出结果如下所示:

Country
China    11.080000
Japan     4.423333
USA      19.180000
Name: GDP, dtype: float64
Python

将GroupBy对象转换为DataFrame

我们可以发现输出的结果类型是Series,而不是我们期望的DataFrame。现在让我们使用Pandas中的reset_index()函数来将该 Series 对象转换为 DataFrame。

df_grouped = grouped.reset_index()
print(df_grouped)
Python

输出结果:

  Country        GDP
0   China  11.080000
1   Japan   4.423333
2     USA  19.180000
Python

现在我们已经成功地将GroupBy对象从Series转换为DataFrame。

添加其他计算结果

在GroupBy操作中,我们还可以对其他列执行不同的计算,例如计算每个国家的人口总数和年份的最大值。

grouped_df = df.groupby(['Country', 'Year']).agg({'GDP': 'mean', 'Population': 'sum'})
print(grouped_df)
Python

输出结果:

                  GDP  Population
Country Year                     
China   2015  11.0600        1377
        2016  11.9400        1404
        2017  12.2400        1427
Japan   2015   4.3800         126
        2016   4.9400         127
        2017   5.1500         128
USA     2015  18.2100         324
        2016  19.3900         326
        2017  20.9400         328
Python

上面的代码中,我们在GroupBy操作中指定两个列 – ‘Country’和 ‘Year’ – 并且使用agg()函数计算每个组的GDP平均值和人口总数。使用agg()函数,我们可以轻松地执行不同类型的计算,并按组返回结果。

总结

在本文中,我们介绍了如何使用Pandas将GroupBy对象从Series转换为DataFrame,以及如何针对不同的列执行不同的计算。GroupBy是一种强大的数据操作技术,可以帮助我们对数据集进行更高级别的操作和分析。希望这篇文章对你有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册