Pandas 按索引分组并计算总和

作者:编程家 分类: pandas 时间:2025-06-26

Pandas 是一个强大的数据处理工具,它提供了各种功能来处理和分析数据。其中一个重要的功能是按索引分组并计算总和。在这篇文章中,我们将介绍如何使用 Pandas 来实现这个功能,并提供一个实际的案例代码。

什么是按索引分组并计算总和?

按索引分组并计算总和是指根据数据的索引将数据分组,并对每个分组进行求和操作。这种操作在数据分析和统计中非常常见,可以帮助我们更好地理解和分析数据。

如何使用 Pandas 实现按索引分组并计算总和?

要使用 Pandas 实现按索引分组并计算总和,我们需要使用到 Pandas 的两个功能:`groupby()`和`sum()`。

`groupby()`函数用于按索引分组,它可以根据指定的索引对数据进行分组。而`sum()`函数则用于计算每个分组的总和。

下面是一个简单的示例,演示了如何使用 Pandas 按索引分组并计算总和:

 python

import pandas as pd

# 创建一个数据表

data = {'A': [1, 2, 3, 4, 5],

'B': [10, 20, 30, 40, 50]}

df = pd.DataFrame(data, index=['a', 'a', 'b', 'b', 'b'])

# 按索引分组并计算总和

result = df.groupby(df.index).sum()

print(result)

运行上述代码,我们可以得到以下输出:

A B

a 3 30

b 12 120

这个例子中,我们创建了一个包含两列数据的数据表。然后,我们使用`groupby()`函数按索引对数据进行分组,最后使用`sum()`函数计算了每个分组的总和。

案例代码:

下面是一个实际的案例,演示了如何使用 Pandas 按索引分组并计算总和。

 python

import pandas as pd

# 创建一个数据表

data = {'City': ['Beijing', 'Shanghai', 'Beijing', 'Shanghai', 'Shanghai'],

'Year': [2019, 2019, 2020, 2020, 2020],

'Population': [2154, 2424, 2171, 2706, 2870]}

df = pd.DataFrame(data)

# 按城市和年份分组并计算人口总和

result = df.groupby(['City', 'Year']).sum()

print(result)

运行上述代码,我们可以得到以下输出:

Population

City Year

Beijing 2019 2154

2020 2171

Shanghai 2019 2424

2020 5576

这个例子中,我们创建了一个包含城市、年份和人口的数据表。然后,我们使用`groupby()`函数按城市和年份对数据进行分组,最后使用`sum()`函数计算了每个分组的人口总和。

在本文中,我们介绍了如何使用 Pandas 按索引分组并计算总和。这是一个非常有用的数据处理操作,可以帮助我们更好地理解和分析数据。通过使用 Pandas 的`groupby()`和`sum()`函数,我们可以轻松地实现这个功能,并得到我们想要的结果。

通过以上案例代码,我们可以看到按照不同的分组条件进行分组并计算总和的结果,这对于数据分析和统计来说非常有用。无论是按照城市和年份、还是按照其他任意的分组条件,Pandas 都可以轻松地实现这个功能,为我们的数据分析工作提供了很大的便利。

参考代码

 python

import pandas as pd

# 创建一个数据表

data = {'City': ['Beijing', 'Shanghai', 'Beijing', 'Shanghai', 'Shanghai'],

'Year': [2019, 2019, 2020, 2020, 2020],

'Population': [2154, 2424, 2171, 2706, 2870]}

df = pd.DataFrame(data)

# 按城市和年份分组并计算人口总和

result = df.groupby(['City', 'Year']).sum()

print(result)

输出结果为:

Population

City Year

Beijing 2019 2154

2020 2171

Shanghai 2019 2424

2020 5576