IT评测·应用市场-qidao123.com
标题:
Pandas教程:数据分析利器 - 从入门到精通
[打印本页]
作者:
宁睿
时间:
2025-3-14 03:57
标题:
Pandas教程:数据分析利器 - 从入门到精通
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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4