Pandas入门:数据处理和分析的强大工具

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() : 根据指定键合并多个 DataFrame
  • concat() : 合并多个 DataFrame
  • join() : 通过索引合并两个 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() 方法来计算每个班级的平均成绩。

相关推荐
songroom36 分钟前
【转】Rust: PhantomData,#may_dangle和Drop Check 真真假假
开发语言·后端·rust
红尘散仙1 小时前
Rust 终端 UI 开发新玩法:用 Ratatui Kit 轻松打造高颜值 CLI
前端·后端·rust
mldong1 小时前
mldong-goframe:基于 GoFrame + Vben5 的全栈快速开发框架正式开源!
vue.js·后端·go
canonical_entropy2 小时前
集成NopReport动态生成复杂Word表格
后端·低代码
ai小鬼头2 小时前
如何重装旁路由系统并优化AIStarter部署:一步步教程
java·css·github
come112342 小时前
Go 包管理工具详解:安装与使用指南
开发语言·后端·golang
绝无仅有2 小时前
OSS文件上传解析失败,错误:文件下载失败的排查与解决
后端·面试·架构
LaoZhangAI3 小时前
Kiro vs Cursor:2025年AI编程IDE深度对比
前端·后端
DogDaoDao3 小时前
2025年 GitHub 主流开源视频生成模型介绍
人工智能·深度学习·开源·大模型·github·音视频·视频生成