Pandas数据过滤、排序、聚合...处理表格数据常用 10 个脚本

Pandas 是一个强大的 Python 数据分析工具,广泛应用于数据科学、机器学习和数据清洗等领域。

对于新手来说,掌握 Pandas 的基本操作是开展数据分析工作的第一步。本文将介绍十个常用的 Pandas 脚本,并通过简单的实际例子来帮助你理解这些操作。

1. 读取 CSV 文件

CSV(Comma-Separated Values)文件是一种常见的数据存储格式。使用 Pandas 可以轻松读取 CSV 文件,将其转换为 DataFrame 格式进行处理。

想象一下,你有一张购物清单,上面列着商品名称及价格,而这份清单保存在一个名为 shopping_list.csv 的文件中。

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('shopping_list.csv')

# 查看前五行数据
print(data.head())

代码说明

  • pd.read_csv('shopping_list.csv'):读取 CSV 文件并生成一个 DataFrame。
  • data.head():查看数据的前五行,以便快速了解数据结构。

2. 写入 CSV 文件

在完成数据处理后,我们可能需要将结果保存为 CSV 文件。Pandas 提供了方便的方法来实现这一点。

假设你已更新了购物清单,想把它保存为新的文件 updated_shopping_list.csv。

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'Item': ['Apple', 'Banana', 'Orange'],
    'Price': [1.2, 0.5, 0.8]
}
df = pd.DataFrame(data)

# 将 DataFrame 写入 CSV 文件
df.to_csv('updated_shopping_list.csv', index=False)

代码说明

  • pd.DataFrame(data):创建一个包含商品和价格的 DataFrame。
  • df.to_csv('updated_shopping_list.csv', index=False):将 DataFrame 保存为 CSV 文件,index=False 表示不保存行索引。

3. 过滤数据

通过条件筛选,我们可以从 DataFrame 中提取特定的数据行,方便分析。

假设你的购物清单上有很多商品,你只想找到价格高于 1 美元的商品。

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('shopping_list.csv')

# 过滤出价格大于 1 美元的商品
filtered_data = data[data['Price'] > 1]

# 查看过滤后的数据
print(filtered_data)

代码说明

  • data[data['Price'] > 1]:利用布尔索引过滤出符合条件的数据行。

4. 排序数据

数据排序功能使得我们可以根据某一列的值对整个 DataFrame 进行排序,从而更容易查找信息。

想象你希望按照商品价格从低到高对购物清单进行排序,以便更好地管理预算。

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('shopping_list.csv')

# 按价格升序排序
sorted_data = data.sort_values(by='Price')

# 查看排序后的数据
print(sorted_data)

代码说明

  • data.sort_values(by='Price'):根据价格列对数据进行升序排序。

5. 数据聚合

通过数据聚合,我们可以对数据进行分组并计算统计信息,例如求平均值、总和等。

假设你想知道每种水果的平均价格,以便做出更好的购买决策。

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('shopping_list.csv')

# 按商品类型分组并计算平均价格
average_price = data.groupby('Item')['Price'].mean()

# 查看结果
print(average_price)

代码说明

  • data.groupby('Item')['Price'].mean():按商品分组并计算每种商品的平均价格。

6. 处理缺失值

在数据集中,经常会遇到缺失值。Pandas 提供了多种方法来处理这些缺失值。

如果你的购物清单丢失了一些商品的价格,你可能想要删除这些记录。

import pandas as pd

# 读取 CSV 文件
data = pd.read_csv('shopping_list.csv')

# 查看缺失值情况
print(data.isnull().sum())

# 删除含有缺失值的行
cleaned_data = data.dropna()

# 查看处理后的数据
print(cleaned_data)

代码说明

  • data.isnull().sum():检查并显示每列的缺失值数量。
  • data.dropna():删除含有缺失值的行。

7. 合并多个 DataFrame

在数据处理中,经常需要将多个数据集结合起来。Pandas 提供了灵活的合并功能。

假设你有两个不同的列表,一个是你的购物清单,另一个是商店的库存列表,你希望将这两个列表合并,以便找出哪些商品可用。

import pandas as pd

# 创建两个示例 DataFrame
data1 = pd.DataFrame({'ID': [1, 2, 3], 'Item': ['Apple', 'Banana', 'Orange']})
data2 = pd.DataFrame({'ID': [2, 3, 4], 'Price': [0.5, 0.8, 1.0]})

# 合并两个 DataFrame
merged_data = pd.merge(data1, data2, on='ID', how='outer')

# 查看合并后的数据
print(merged_data)

代码说明

  • pd.merge(data1, data2, on='ID', how='outer'):根据 ID 列进行外连接合并。

8. 数据透视表

数据透视表是用于数据汇总和分析的一种有效工具,可以快速计算各类统计信息。

假设你想知道每种商品在不同日期的销售额。

import pandas as pd

# 创建示例数据
data = {
    'Date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],
    'Item': ['Apple', 'Banana', 'Apple', 'Banana'],
    'Sales': [100, 150, 200, 100]
}
df = pd.DataFrame(data)

# 创建数据透视表
pivot_table = pd.pivot_table(df, values='Sales', index='Item', columns='Date', aggfunc='sum')

# 查看透视表
print(pivot_table)

代码说明

  • pd.pivot_table(df, values='Sales', index='Item', columns='Date', aggfunc='sum'):创建数据透视表以汇总销售额。

9. 导入 Excel 文件

除了 CSV 文件,Pandas 还支持读取 Excel 文件,方便用户处理更多格式的数据。

生活例子

想象你有一个 Excel 文件,里面详细记录了你的每月开支,你希望读取并分析这些数据。

import pandas as pd

# 读取 Excel 文件
data = pd.read_excel('monthly_expenses.xlsx', sheet_name='Sheet1')

# 查看前五行数据
print(data.head())
  • pd.read_excel('monthly_expenses.xlsx', sheet_name='Sheet1'):读取指定工作表的 Excel 文件。

10. 导出到 Excel 文件

在数据处理完成后,我们往往需要将结果保存为 Excel 文件,便于分享和进一步分析。

假设你已经整理好了每月的开支数据,希望将其保存为一个新的 Excel 文件,方便以后的查看。

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'Month': ['January', 'February', 'March'],
    'Expenses': [300, 400, 350]
}
df = pd.DataFrame(data)

# 将 DataFrame 导出到 Excel 文件
df.to_excel('monthly_expenses_report.xlsx', index=False)

代码说明

  • df.to_excel('monthly_expenses_report.xlsx', index=False):将 DataFrame 导出为 Excel 文件。

总结

以上就是处理表格数据时常用的 10 个 Pandas 脚本示例。从读取和写入文件到数据过滤、排序、聚合等操作,Pandas 为我们提供了丰富的功能来简化这些任务。

来源:老邓 印象Python

THE END