Pandas:对给定列的 DataFrame 行求和

作者:编程家 分类: pandas 时间:2025-12-24

Pandas:对给定列的 DataFrame 行求和

在数据分析和处理中,经常需要对 DataFrame 中的某一列进行求和操作。Pandas 是一个强大的数据分析工具,它提供了丰富的功能来处理和操作数据。本文将介绍如何使用 Pandas 对给定列的 DataFrame 行进行求和,并提供相应的案例代码。

首先,我们需要导入 Pandas 库,并创建一个示例 DataFrame。假设我们有一个包含学生信息的 DataFrame,其中包括学生的姓名、年龄和成绩三列数据。我们的目标是对成绩列进行求和操作。

python

import pandas as pd

# 创建示例 DataFrame

data = {'姓名': ['张三', '李四', '王五'],

'年龄': [18, 19, 20],

'成绩': [85, 90, 92]}

df = pd.DataFrame(data)

print(df)

输出结果如下:

姓名 年龄 成绩

0 张三 18 85

1 李四 19 90

2 王五 20 92

接下来,我们使用 Pandas 的 `sum()` 函数对成绩列进行求和操作。`sum()` 函数可以直接对 DataFrame 或 Series 进行求和,返回一个标量值。

python

# 对成绩列进行求和

sum_score = df['成绩'].sum()

print('总成绩:', sum_score)

输出结果如下:

总成绩: 267

使用 apply() 函数对多列进行求和

有时候,我们需要对多列进行求和操作。Pandas 提供了 `apply()` 函数来实现这个功能。`apply()` 函数可以对 DataFrame 的每一行或每一列应用指定的函数,并返回一个新的 Series。

python

# 对年龄和成绩两列进行求和

sum_columns = df[['年龄', '成绩']].apply(sum)

print('总年龄和总成绩:')

print(sum_columns)

输出结果如下:

总年龄和总成绩:

年龄 57

成绩 267

dtype: int64

使用 axis 参数指定求和方向

默认情况下,`sum()` 函数会沿着列的方向进行求和操作,即对每一列进行求和。如果我们希望沿着行的方向进行求和操作,可以使用 `axis` 参数。

python

# 沿着行的方向对每一行进行求和

sum_rows = df[['年龄', '成绩']].sum(axis=1)

print('每个学生的总年龄和总成绩:')

print(sum_rows)

输出结果如下:

每个学生的总年龄和总成绩:

0 103

1 109

2 112

dtype: int64

使用 groupby() 函数对指定列进行分组求和

除了对整个 DataFrame 进行求和操作,我们还可以使用 `groupby()` 函数对指定列进行分组求和。`groupby()` 函数可以将 DataFrame 按照指定列的值进行分组,并对每个分组进行求和操作。

python

# 按照年龄进行分组,并对每个分组的成绩进行求和

grouped = df.groupby('年龄')['成绩'].sum()

print('按照年龄分组的总成绩:')

print(grouped)

输出结果如下:

按照年龄分组的总成绩:

年龄

18 85

19 90

20 92

Name: 成绩, dtype: int64

通过以上的代码示例,我们可以看到如何使用 Pandas 对给定列的 DataFrame 行进行求和操作。无论是对单列、多列还是分组进行求和,Pandas 都提供了简便的方法来实现这些操作。在实际的数据分析和处理中,对数据进行求和操作是非常常见和有用的,希望本文对你有所帮助。