【掌握Pandas】8个常用API及使用技巧

Pandas 是 Python 数据分析领域中最强大且受欢迎的库之一。它提供了高效的数据结构和数据分析工具,使得处理和分析数据变得更加简单。在本文中,我们将介绍几个常用的 Pandas API,并提供详细的使用方法和代码示例,帮助你更好地利用 Pandas 进行数据分析。

1. 读取数据:

使用 read_csv 方法可以轻松读取 CSV 文件。示例代码如下:

import pandas as pd
# 读取CSV文件
data = pd.read_csv('example.csv')
# 显示前几行数据
print(data.head())

注意事项: 确保文件路径正确,可以使用相对或绝对路径。如果读取的文件不存在,则会抛出异常!

2. 写入数据

当你需要将处理后的数据保存到 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

只有第一次运行时才会有表头,多次追加数据也只出现一个表头

3. 数据选择和过滤:

使用 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

4. 缺失值处理:

使用 dropna 或 fillna 处理缺失值。示例代码:

# 删除包含缺失值的行
data_without_na = data.dropna()
# 使用平均值填充缺失值
data_filled = data.fillna(data.mean())

注意事项: 谨慎处理缺失值,选择合适的方法以保留数据完整性。

5. 数据排序:

使用 sort_values 方法对数据进行排序。示例代码:

# 按某列升序排序
sorted_data = data.sort_values(by='column1', ascending=True)

提示: 在排序时注意参数 ascending,设置为 False 可以进行降序排序。

6. 数据聚合与分组:

使用 groupby 和聚合函数对数据进行分组和聚合。示例代码:

# 按列进行分组并计算均值
grouped_data = data.groupby('column1').mean()

注意事项: 了解如何有效地使用聚合函数,满足不同的统计需求。

7. 数据合并:

使用 merge 方法合并多个数据集。示例代码:

# 合并两个数据集
merged_data = pd.merge(data1, data2, on='common_column')

提示: 了解不同合并方式,如内连接、左连接、右连接等。

8. 数据可视化:

使用 Pandas 结合 Matplotlib 或 Seaborn 进行简单的数据可视化。示例代码:

# 绘制柱状图
data['column1'].plot(kind='bar')

注意事项: Pandas 提供了基本的可视化功能,但对于复杂的图表,建议使用专业的可视化库。


文章内容已同步微信公众号“一个努力奔跑的snail”,获取更多爬虫案例、工具源码,后台回复相关关键词即可获取。

你可能感兴趣的:(python爬虫,js逆向,pandas,python)