Pandas教程:数据分析利器 - 从入门到精通

宁睿  论坛元老 | 2025-3-14 03:57:45 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1053|帖子 1053|积分 3169

Pandas是Python中最强大的数据分析工具之一,它提供了高性能、易用的数据结构和数据分析工具。本教程将全面介绍Pandas的核心功能和现实应用。
  一、Pandas底子

1.1 数据结构简介

Pandas重要有两种数据结构:


  • Series(一维数据)
  • DataFrame(二维数据)
  1. import pandas as pd
  2. import numpy as np
  3. # 创建Series
  4. s = pd.Series([1, 3, 5, np.nan, 6, 8])
  5. print(s)
  6. # 创建DataFrame
  7. df = pd.DataFrame({
  8.     '姓名': ['张三', '李四', '王五'],
  9.     '年龄': [25, 28, 22],
  10.     '城市': ['北京', '上海', '广州']
  11. })
  12. print(df)
复制代码
1.2 数据导入与导出

  1. # 读取CSV文件
  2. df = pd.read_csv('data.csv')
  3. # 读取Excel文件
  4. df = pd.read_excel('data.xlsx')
  5. # 保存为CSV
  6. df.to_csv('output.csv', index=False)
  7. # 保存为Excel
  8. df.to_excel('output.xlsx', index=False)
复制代码
二、数据操作底子

2.1 查看数据

  1. # 查看前几行数据
  2. print(df.head())
  3. # 查看基本信息
  4. print(df.info())
  5. # 查看统计摘要
  6. print(df.describe())
  7. # 查看数据维度
  8. print(df.shape)
复制代码
2.2 数据选择和过滤

  1. # 选择列
  2. print(df['姓名'])
  3. print(df[['姓名', '年龄']])
  4. # 条件过滤
  5. print(df[df['年龄'] > 25])
  6. # loc和iloc选择器
  7. print(df.loc[0])  # 基于标签
  8. print(df.iloc[0])  # 基于位置
复制代码
三、数据清洗和预处理惩罚

3.1 处理惩罚缺失值

  1. # 检查缺失值
  2. print(df.isnull().sum())
  3. # 填充缺失值
  4. df.fillna(value=0)  # 用0填充
  5. df.fillna(method='ffill')  # 用前一个值填充
  6. df.fillna(method='bfill')  # 用后一个值填充
  7. # 删除缺失值
  8. df.dropna()
复制代码
3.2 数据转换

  1. # 类型转换
  2. df['年龄'] = df['年龄'].astype('int64')
  3. # 重命名列
  4. df = df.rename(columns={'姓名': 'name', '年龄': 'age'})
  5. # 替换值
  6. df['城市'] = df['城市'].replace('北京', 'Beijing')
复制代码
四、数据分析和聚合

4.1 分组操作

  1. # 按城市分组并计算平均年龄
  2. print(df.groupby('城市')['年龄'].mean())
  3. # 多个聚合操作
  4. print(df.groupby('城市').agg({
  5.     '年龄': ['mean', 'max', 'min'],
  6.     '姓名': 'count'
  7. }))
复制代码
4.2 排序

  1. # 按年龄排序
  2. df_sorted = df.sort_values('年龄', ascending=False)
  3. # 多列排序
  4. df_sorted = df.sort_values(['城市', '年龄'], ascending=[True, False])
复制代码
五、高级操作

5.1 合并数据

  1. # 合并两个DataFrame
  2. df1 = pd.DataFrame({
  3.     '编号': ['A1', 'A2', 'A3'],
  4.     '姓名': ['张三', '李四', '王五']
  5. })
  6. df2 = pd.DataFrame({
  7.     '编号': ['A1', 'A2', 'A4'],
  8.     '成绩': [90, 85, 88]
  9. })
  10. # 内连接
  11. merged = pd.merge(df1, df2, on='编号', how='inner')
  12. # 外连接
  13. merged = pd.merge(df1, df2, on='编号', how='outer')
复制代码
5.2 数据透视表

  1. # 创建透视表
  2. pivot_table = pd.pivot_table(df,
  3.                             values='年龄',
  4.                             index='城市',
  5.                             columns='性别',
  6.                             aggfunc='mean')
复制代码
5.3 时间序列

  1. # 创建日期范围
  2. dates = pd.date_range('20230101', periods=6)
  3. # 时间序列数据
  4. ts = pd.Series(np.random.randn(6), index=dates)
  5. # 重采样
  6. print(ts.resample('M').mean())  # 按月重采样
复制代码
六、实用技巧

6.1 数据可视化

  1. import matplotlib.pyplot as plt
  2. # 绘制折线图
  3. df['年龄'].plot(kind='line')
  4. plt.show()
  5. # 绘制柱状图
  6. df.groupby('城市')['年龄'].mean().plot(kind='bar')
  7. plt.show()
复制代码
6.2 性能优化

  1. # 使用适当的数据类型
  2. df['年龄'] = df['年龄'].astype('int32')  # 降低内存使用
  3. # 使用query进行高效过滤
  4. df.query('年龄 > 25 and 城市 == "北京"')
复制代码
总结

Pandas的重要上风:


  • 强大的数据处理惩罚本领
  • 灵活的数据结构
  • 高效的数据分析工具
  • 丰富的数据导入/导出功能
  • 与其他数据科学工具良好的集成
利用发起:


  • 熟练把握底子操作
  • 善用链式操作进步代码可读性
  • 注意内存利用服从
  • 充分利用Pandas的向量化操作
  • 经常查阅官方文档获取最新特性

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表