Pandas是Python中最强大的数据分析工具之一,它提供了高性能、易用的数据结构和数据分析工具。本教程将全面介绍Pandas的核心功能和现实应用。
一、Pandas底子
1.1 数据结构简介
Pandas重要有两种数据结构:
- Series(一维数据)
- DataFrame(二维数据)
- import pandas as pd
- import numpy as np
- # 创建Series
- s = pd.Series([1, 3, 5, np.nan, 6, 8])
- print(s)
- # 创建DataFrame
- df = pd.DataFrame({
- '姓名': ['张三', '李四', '王五'],
- '年龄': [25, 28, 22],
- '城市': ['北京', '上海', '广州']
- })
- print(df)
复制代码 1.2 数据导入与导出
- # 读取CSV文件
- df = pd.read_csv('data.csv')
- # 读取Excel文件
- df = pd.read_excel('data.xlsx')
- # 保存为CSV
- df.to_csv('output.csv', index=False)
- # 保存为Excel
- df.to_excel('output.xlsx', index=False)
复制代码 二、数据操作底子
2.1 查看数据
- # 查看前几行数据
- print(df.head())
- # 查看基本信息
- print(df.info())
- # 查看统计摘要
- print(df.describe())
- # 查看数据维度
- print(df.shape)
复制代码 2.2 数据选择和过滤
- # 选择列
- print(df['姓名'])
- print(df[['姓名', '年龄']])
- # 条件过滤
- print(df[df['年龄'] > 25])
- # loc和iloc选择器
- print(df.loc[0]) # 基于标签
- print(df.iloc[0]) # 基于位置
复制代码 三、数据清洗和预处理惩罚
3.1 处理惩罚缺失值
- # 检查缺失值
- print(df.isnull().sum())
- # 填充缺失值
- df.fillna(value=0) # 用0填充
- df.fillna(method='ffill') # 用前一个值填充
- df.fillna(method='bfill') # 用后一个值填充
- # 删除缺失值
- df.dropna()
复制代码 3.2 数据转换
- # 类型转换
- df['年龄'] = df['年龄'].astype('int64')
- # 重命名列
- df = df.rename(columns={'姓名': 'name', '年龄': 'age'})
- # 替换值
- df['城市'] = df['城市'].replace('北京', 'Beijing')
复制代码 四、数据分析和聚合
4.1 分组操作
- # 按城市分组并计算平均年龄
- print(df.groupby('城市')['年龄'].mean())
- # 多个聚合操作
- print(df.groupby('城市').agg({
- '年龄': ['mean', 'max', 'min'],
- '姓名': 'count'
- }))
复制代码 4.2 排序
- # 按年龄排序
- df_sorted = df.sort_values('年龄', ascending=False)
- # 多列排序
- df_sorted = df.sort_values(['城市', '年龄'], ascending=[True, False])
复制代码 五、高级操作
5.1 合并数据
- # 合并两个DataFrame
- df1 = pd.DataFrame({
- '编号': ['A1', 'A2', 'A3'],
- '姓名': ['张三', '李四', '王五']
- })
- df2 = pd.DataFrame({
- '编号': ['A1', 'A2', 'A4'],
- '成绩': [90, 85, 88]
- })
- # 内连接
- merged = pd.merge(df1, df2, on='编号', how='inner')
- # 外连接
- merged = pd.merge(df1, df2, on='编号', how='outer')
复制代码 5.2 数据透视表
- # 创建透视表
- pivot_table = pd.pivot_table(df,
- values='年龄',
- index='城市',
- columns='性别',
- aggfunc='mean')
复制代码 5.3 时间序列
- # 创建日期范围
- dates = pd.date_range('20230101', periods=6)
- # 时间序列数据
- ts = pd.Series(np.random.randn(6), index=dates)
- # 重采样
- print(ts.resample('M').mean()) # 按月重采样
复制代码 六、实用技巧
6.1 数据可视化
- import matplotlib.pyplot as plt
- # 绘制折线图
- df['年龄'].plot(kind='line')
- plt.show()
- # 绘制柱状图
- df.groupby('城市')['年龄'].mean().plot(kind='bar')
- plt.show()
复制代码 6.2 性能优化
- # 使用适当的数据类型
- df['年龄'] = df['年龄'].astype('int32') # 降低内存使用
- # 使用query进行高效过滤
- df.query('年龄 > 25 and 城市 == "北京"')
复制代码 总结
Pandas的重要上风:
- 强大的数据处理惩罚本领
- 灵活的数据结构
- 高效的数据分析工具
- 丰富的数据导入/导出功能
- 与其他数据科学工具良好的集成
利用发起:
- 熟练把握底子操作
- 善用链式操作进步代码可读性
- 注意内存利用服从
- 充分利用Pandas的向量化操作
- 经常查阅官方文档获取最新特性
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |