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() 方法来计算每个班级的平均成绩。

相关推荐
豌豆花下猫10 分钟前
Python 3.14 新特性盘点,更新了些什么?
后端·python·ai
flying_131420 分钟前
面试常问系列(一)-神经网络参数初始化-之-softmax
深度学习·神经网络·算法·机器学习·面试
caihuayuan542 分钟前
Vue生命周期&脚手架工程&Element-UI
java·大数据·spring boot·后端·课程设计
鸿蒙布道师1 小时前
ChatGPT深度研究功能革新:GitHub直连与强化微调
人工智能·深度学习·神经网络·自然语言处理·chatgpt·数据挖掘·github
蒟蒻小袁1 小时前
力扣面试150题-- 翻转二叉树
算法·leetcode·面试
陈苏同学1 小时前
从 Git 到 GitHub - 使用 Git 进行版本控制 - Git 常用命令
git·github
白总Server2 小时前
微软系统 红帽系统 网络故障排查:ping、traceroute、netstat
linux·运维·服务器·microsoft·中间件·架构·github
明月与玄武3 小时前
Spring Boot中的拦截器!
java·spring boot·后端
菲兹园长4 小时前
SpringBoot统一功能处理
java·spring boot·后端
muxue1784 小时前
go语言封装、继承与多态:
开发语言·后端·golang