Python Pandas数据处理全指南

Python Pandas 模块详解

Pandas 是 Python 的核心数据分析库,提供高效的数据结构和数据处理工具。核心功能如下:

1. 核心数据结构
  • Series
    一维带标签数组,类似增强版 NumPy 数组:

    import pandas as pd
    s = pd.Series([3, 7, 2], index=['a', 'b', 'c'])
    print(s['b'])  # 输出: 7
    

  • DataFrame
    二维表格型数据结构(核心对象):

    data = {'姓名': ['张三', '李四'], '年龄': [25, 30]}
    df = pd.DataFrame(data)
    print(df)
    

    输出:

      姓名  年龄
    0 张三  25
    1 李四  30
    

2. 数据导入/导出
# 从 CSV 导入
df = pd.read_csv('data.csv')

# 导出到 Excel
df.to_excel('output.xlsx', index=False)

支持格式:CSV、JSON、SQL、Excel、Parquet 等。

3. 数据查看与选择
  • 基础查看:

    df.head(3)   # 查看前3行
    df.describe() # 统计摘要
    

  • 数据选择:

    df['年龄']          # 选择列
    df.loc[1]           # 按标签选择行
    df.iloc[0:2]        # 按位置切片
    df.query('年龄 > 25') # 条件查询
    

4. 数据清洗
  • 缺失值处理:

    df.dropna()      # 删除缺失值
    df.fillna(0)     # 填充为0
    

  • 重复值处理:

    df.drop_duplicates()  # 删除重复行
    

  • 类型转换:

    df['年龄'] = df['年龄'].astype(float)  # 转换为浮点数
    

5. 数据处理
  • 新增列:

    df['出生年'] = 2023 - df['年龄']
    

  • 合并数据:

    pd.concat([df1, df2])        # 纵向堆叠
    pd.merge(df1, df2, on='ID')  # 按列连接
    

  • 分组聚合:

    df.groupby('部门')['薪资'].mean()  # 按部门求平均薪资
    

6. 时间序列处理
# 创建时间序列
date_rng = pd.date_range(start='2023-01-01', periods=5, freq='D')
ts = pd.Series([1, 3, 5, 7, 9], index=date_rng)

# 重采样
ts.resample('2D').mean()  # 每2天求均值

7. 数据可视化
df.plot(kind='bar', x='姓名', y='年龄')  # 柱状图
df['年龄'].plot.hist()                   # 直方图

8. 高级功能
  • 分类数据:

    df['部门'] = df['部门'].astype('category')
    

  • 内存优化:

    df = pd.read_csv('data.csv', dtype={'ID': 'int32'})
    

9. 性能优化
  • 向量化操作:

    # 避免循环,直接向量计算
    df['奖金'] = df['薪资'] * 0.1
    

  • 大数据处理:

    # 分块读取大文件
    for chunk in pd.read_csv('big_data.csv', chunksize=10000):
        process(chunk)
    

应用场景

  • 数据清洗与预处理
  • 统计分析
  • 时间序列分析
  • 机器学习数据准备
  • 金融数据分析(如股票数据处理)

最佳实践

  1. 优先使用向量化操作替代循环
  2. 处理大型数据时使用 chunksize 参数
  3. 使用 dtype 指定数据类型减少内存占用
  4. 复杂操作可结合 NumPy 加速计算
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值