Pandas 是 Python 中用于数据处理和分析的库,提供了多种实用的 API。以下是常用的 Pandas API 和具体例子,帮助你快速上手数据处理。
1. 数据读取和写入
API
read_csv()
: 读取 CSV 文件to_csv()
: 写入 CSV 文件read_excel()
: 读取 Excel 文件to_excel()
: 写入 Excel 文件read_json()
: 读取 JSON 文件to_json()
: 写入 JSON 文件
例子
ini
python
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv('data.csv')
# 写入 CSV 文件
df.to_csv('output.csv', index=False)
# 读取 Excel 文件
df_excel = pd.read_excel('data.xlsx')
# 写入 Excel 文件
df_excel.to_excel('output.xlsx', index=False)
2. 数据合并和连接
API
merge()
: 根据指定键合并多个 DataFrameconcat()
: 合并多个 DataFramejoin()
: 通过索引合并两个 DataFrame
例子
ini
python
# 创建两个 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value2': [4, 5, 6]})
# 使用 merge() 合并
df_merged = pd.merge(df1, df2, on='key')
# 使用 concat() 合并
df_concat = pd.concat([df1, df2], axis=1)
# 使用 join() 合并
df_joined = df1.set_index('key').join(df2.set_index('key'))
3. 数据清洗和处理
API
dropna()
: 删除包含缺失值的行或列fillna()
: 填充缺失值drop_duplicates()
: 删除重复行sort_values()
: 按指定列排序
例子
ini
python
# 删除包含缺失值的行
df.dropna(inplace=True)
# 填充缺失值为 0
df.fillna(0, inplace=True)
# 删除重复行
df.drop_duplicates(inplace=True)
# 按指定列排序
df.sort_values(by='column_name', inplace=True)
4. 数据分组和聚合
API
groupby()
: 按指定列分组agg()
: 对每个分组应用聚合函数
例子
ini
python
# 按指定列分组并计算均值
df_grouped = df.groupby('column_name').mean()
# 对多个列进行聚合计算
df_grouped = df.groupby('column_name').agg({'col1': 'sum', 'col2': 'mean'})
5. 数据转换和重塑
API
pivot()
: 按指定行列重塑表格melt()
: 将宽格式数据转换为长格式
例子
ini
python
# 使用 pivot() 重塑表格
df_pivot = df.pivot(index='index_col', columns='column_col', values='value_col')
# 使用 melt() 转换数据格式
df_melt = pd.melt(df, id_vars='id_col', value_vars=['col1', 'col2'])
实用案例:数据分析
假设我们有一个包含学生考试成绩的 DataFrame,想要计算每个班级的平均成绩。
bash
python
# 创建 DataFrame
data = {
'班级': ['A', 'A', 'B', 'B', 'C', 'C'],
'姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八'],
'成绩': [90, 85, 95, 88, 92, 89]
}
df = pd.DataFrame(data)
# 按班级分组计算平均成绩
average_scores = df.groupby('班级')['成绩'].mean()
print(average_scores)
这个例子展示了如何使用 groupby()
和 mean()
方法来计算每个班级的平均成绩。