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

相关推荐
Sakura_j_h_8 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
学长毕设8 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
滴滴答答哒9 小时前
ASP.NET Core + FaceRecognitionDotNet 人脸识别实战:DI 单例、特征向量持久化与 1:N 比对
后端·asp.net
captain37611 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
wflynn11 小时前
GitHub 今日推荐|Edge0:让大号 MoE 模型在一台 Mac 上流式跑起来
python·开源·github
IT_陈寒12 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
每天进步一点点km12 小时前
自用-牛客网-华为机试编程模拟题1-python
华为od·华为·面试
泡海椒13 小时前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go13 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥430913 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端