Pandas 中的转换与聚合

作者:编程家 分类: pandas 时间:2025-04-03

使用Pandas进行数据转换与聚合是数据分析和处理中常用的技巧之一。Pandas是一个强大的Python库,提供了丰富的功能和工具,使得数据处理变得更加简单和高效。本文将介绍Pandas中的一些常用转换与聚合操作,并通过案例代码来加深理解。

数据转换

数据转换是指将原始数据进行格式转换和清洗,以便后续分析和可视化。Pandas提供了多种方法来实现数据转换,如数据类型转换、重命名列名、删除重复值等。

数据类型转换

在数据分析过程中,经常需要将数据从一种类型转换为另一种类型,例如将字符串类型转换为数值类型或日期类型。Pandas提供了astype()方法来实现数据类型转换。

python

# 将列'age'的数据类型转换为整数类型

df['age'] = df['age'].astype(int)

重命名列名

有时候原始数据的列名不够直观或存在拼写错误,可以使用rename()方法来重命名列名。

python

# 将列名'old_name'重命名为'new_name'

df = df.rename(columns={'old_name': 'new_name'})

删除重复值

当数据集中存在重复值时,可以使用drop_duplicates()方法来删除重复值。

python

# 删除列'name'中的重复值

df = df.drop_duplicates(subset=['name'])

数据聚合

数据聚合是指将数据按照某种规则进行分组,并对每个分组进行某种计算或统计。Pandas提供了groupby()方法来实现数据聚合操作。

按列进行分组计算

可以使用groupby()方法按照某一列的值进行分组,并进行聚合计算。

python

# 按列'category'进行分组计算平均值

result = df.groupby('category')['value'].mean()

多列分组计算

除了单列分组计算,还可以根据多列的值进行分组,并进行聚合计算。

python

# 按列'year'和'category'进行分组计算平均值

result = df.groupby(['year', 'category'])['value'].mean()

使用agg()函数进行多个计算

在聚合计算时,可以使用agg()函数对每个分组应用多个计算。

python

# 按列'category'进行分组计算平均值和总和

result = df.groupby('category')['value'].agg(['mean', 'sum'])

案例代码

为了更好地理解和应用上述转换与聚合操作,下面通过一个简单的案例来演示。

python

import pandas as pd

# 创建一个包含姓名、年龄和性别的数据集

data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],

'age': [25, 30, 35, 40, 45],

'gender': ['female', 'male', 'male', 'male', 'female']}

df = pd.DataFrame(data)

# 将年龄转换为整数类型

df['age'] = df['age'].astype(int)

# 重命名列名

df = df.rename(columns={'gender': 'sex'})

# 删除重复值

df = df.drop_duplicates(subset=['name'])

# 按性别进行分组计算平均年龄和总年龄

result = df.groupby('sex')['age'].agg(['mean', 'sum'])

print(result)

以上代码首先创建了一个包含姓名、年龄和性别的数据集,然后进行了数据转换操作,将年龄转换为整数类型,并重命名了列名。接着使用groupby()方法按性别进行分组,并计算了平均年龄和总年龄。最后打印了结果。

本文介绍了Pandas中的数据转换与聚合操作,并通过案例代码进行了演示。数据转换可以帮助我们对原始数据进行格式转换和清洗,以便后续分析和可视化。数据聚合可以帮助我们对数据按照某种规则进行分组,并进行计算和统计。使用Pandas提供的功能和工具,可以更加简单和高效地进行数据处理和分析。