Pandas 是 Python 数据分析领域中最强大且受欢迎的库之一。它提供了高效的数据结构和数据分析工具,使得处理和分析数据变得更加简单。在本文中,我们将介绍几个常用的 Pandas API,并提供详细的使用方法和代码示例,帮助你更好地利用 Pandas 进行数据分析。
使用 read_csv 方法可以轻松读取 CSV 文件。示例代码如下:
import pandas as pd
# 读取CSV文件
data = pd.read_csv('example.csv')
# 显示前几行数据
print(data.head())
注意事项: 确保文件路径正确,可以使用相对或绝对路径。如果读取的文件不存在,则会抛出异常!
当你需要将处理后的数据保存到 CSV 文件时,Pandas 提供了 to_csv 方法。以下是设置是否包含行头的示例代码:
包含行头:
# 将数据写入CSV文件,包含行头
data.to_csv('output_with_header.csv', index=True)
不包含行头:
# 将数据写入CSV文件,不包含行头
data.to_csv('output_without_header.csv', index=False, header=False)
注意事项: 1.默认情况下,to_csv 方法会写入行头(列名),通过设置 index 和 header 参数,你可以自定义是否包含行头。在某些情况下,省略行头可以使文件更加紧凑。2.如果指定的文件路径已经存在,使用 to_csv 方法将覆盖现有文件。
如果你希望追加数据而不是覆盖,可以使用 mode=‘a’ 参数。
完整示例如下:
import pandas as pd
new_data = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [21, 20, 25],
'Salary': [5000, 6000, 750001]
})
file_path = 'results.csv'
try:
existing_data = pd.read_csv(file_path)
header = False
except FileNotFoundError:
# 报错,说明没有当前文件,设置header头为True,写入数据时会根据字段自动添加表头
existing_data = pd.DataFrame()
header = True
# 注意使用追加模式 mode='a',否则之前的数据会被覆盖
new_data.to_csv(file_path, mode='a', index=False, header=header)
运行两次后效果如下:
Name | Age | Salary |
---|---|---|
Alice | 21 | 5000 |
Bob | 20 | 6000 |
Charlie | 25 | 750001 |
Alice | 21 | 5000 |
Bob | 20 | 6000 |
Charlie | 25 | 750001 |
只有第一次运行时才会有表头,多次追加数据也只出现一个表头
使用 loc 和 iloc 方法可以选择和过滤数据。示例代码:
# 使用标签选择行和列
selected_data = data.loc[:, ['column1', 'column2']]
# 使用位置索引选择行和列
selected_data = data.iloc[:, [0, 1]]
提示: 学会灵活使用 loc 和 iloc,它们分别基于标签和位置进行选择。
完整运行代码&运行结果:
import pandas as pd
new_data = pd.DataFrame({
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [21, 20, 25],
'Salary': [5000, 6000, 750001]
})
file_path = 'results2.csv'
existing_data = pd.DataFrame()
new_data.to_csv(file_path, mode='a', index=False, header=True)
existing_data = pd.read_csv(file_path)
selected_data1 = existing_data.loc[:, ['Age', 'Salary']]
print(selected_data1)
selected_data2 = existing_data.iloc[:, [0, 1]]
print(selected_data2)
print(selected_data1)的结果如下:
Age | Salary | |
---|---|---|
0 | 21 | 5000 |
1 | 20 | 6000 |
2 | 25 | 750001 |
print(selected_data2)的结果如下:
Name | Age | |
---|---|---|
0 | Alice | 21 |
1 | Bob | 20 |
2 | Charlie | 25 |
使用 dropna 或 fillna 处理缺失值。示例代码:
# 删除包含缺失值的行
data_without_na = data.dropna()
# 使用平均值填充缺失值
data_filled = data.fillna(data.mean())
注意事项: 谨慎处理缺失值,选择合适的方法以保留数据完整性。
使用 sort_values 方法对数据进行排序。示例代码:
# 按某列升序排序
sorted_data = data.sort_values(by='column1', ascending=True)
提示: 在排序时注意参数 ascending,设置为 False 可以进行降序排序。
使用 groupby 和聚合函数对数据进行分组和聚合。示例代码:
# 按列进行分组并计算均值
grouped_data = data.groupby('column1').mean()
注意事项: 了解如何有效地使用聚合函数,满足不同的统计需求。
使用 merge 方法合并多个数据集。示例代码:
# 合并两个数据集
merged_data = pd.merge(data1, data2, on='common_column')
提示: 了解不同合并方式,如内连接、左连接、右连接等。
使用 Pandas 结合 Matplotlib 或 Seaborn 进行简单的数据可视化。示例代码:
# 绘制柱状图
data['column1'].plot(kind='bar')
注意事项: Pandas 提供了基本的可视化功能,但对于复杂的图表,建议使用专业的可视化库。
文章内容已同步微信公众号“一个努力奔跑的snail”,获取更多爬虫案例、工具源码,后台回复相关关键词即可获取。