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 为我们提供了丰富的功能来简化这些任务。
来源: