作者:唐叔在学习
专栏:唐叔学Python
关键词:Python数据分析、Pandas教程、DataFrame操作、数据清洗、数据可视化、机器学习预处理、大数据处理、Python实战、AI数据处理、数据科学入门
文章目录
- 一、Pandas是什么?为什么它这么火?
- 二、Pandas安装与基本操作
- 1. 安装Pandas
- 2. 数据读取与查看
- 三、Pandas数据清洗实战
- 1. 处理缺失值
- 2. 数据去重
- 3. 数据类型转换
- 四、Pandas数据分析技巧
- 1. 数据筛选与排序
- 2. 分组聚合
- 3. 数据透视表
- 五、Pandas数据可视化
- 六、Pandas高级应用
- 1. 时间序列分析
- 2. 数据合并
- 3. 性能优化技巧
- 七、实战案例:电商销售数据分析
- 八、总结与思维导图
一、Pandas是什么?为什么它这么火?
各位优快云的小伙伴们大家好,我是你们的老朋友唐叔!今天咱们来聊聊Python数据分析领域的神器——Pandas。
最近几年,随着大数据和人工智能的火爆,Pandas这个库也跟着水涨船高。根据2023年最新的Python库使用统计,Pandas在数据科学领域的采用率高达89%,稳居第一!为什么它这么受欢迎?简单来说就是三个字:快、强、易。
Pandas基于NumPy开发,但比NumPy更适合处理表格型数据。它提供了两种核心数据结构:
- Series:一维数组,可以看作Excel中的一列
- DataFrame:二维表格,相当于整个Excel工作表
import pandas as pd
# 创建Series
s = pd.Series([1, 3, 5, 7, 9])
# 创建DataFrame
data = {'姓名': ['张三', '李四', '王五'],
'年龄': [25, 30, 35],
'城市': ['北京', '上海', '广州']}
df = pd.DataFrame(data)
二、Pandas安装与基本操作
1. 安装Pandas
安装Pandas非常简单,一行命令搞定:
pip install pandas
如果你要做数据分析,建议直接安装Anaconda,它已经包含了Pandas和所有相关依赖。
2. 数据读取与查看
Pandas支持读取各种格式的数据:
# 读取CSV
df = pd.read_csv('data.csv')
# 读取Excel
df = pd.read_excel('data.xlsx')
# 读取SQL数据库
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql('SELECT * FROM table', conn)
查看数据的基本信息:
df.head() # 查看前5行
df.tail(3) # 查看后3行
df.info() # 查看数据类型和内存使用
df.describe() # 统计描述
有关JSON数据读取,另外会专门撰写文章介绍,敬请期待哦~
三、Pandas数据清洗实战
数据清洗是数据分析中最耗时的环节,Pandas提供了强大的工具帮你高效完成这项工作。
1. 处理缺失值
# 检查缺失值
df.isnull().sum()
# 删除缺失值
df.dropna()
# 填充缺失值
df.fillna(0) # 用0填充
2. 数据去重
df.drop_duplicates() # 删除完全重复的行
df.drop_duplicates(subset=['列名']) # 基于特定列去重
3. 数据类型转换
df['日期列'] = pd.to_datetime(df['日期列']) # 转换为日期类型
df['数值列'] = pd.to_numeric(df['数值列']) # 转换为数值类型
获取或修改具体列数据,使用
df['列名']
四、Pandas数据分析技巧
1. 数据筛选与排序
# 条件筛选
df[df['年龄'] > 30] # 年龄大于30的记录
df[(df['年龄'] > 30) & (df['城市'] == '北京')] # 多条件筛选
# 排序
df.sort_values('年龄', ascending=False) # 按年龄降序
2. 分组聚合
# 基本分组
df.groupby('城市')['年龄'].mean() # 按城市分组计算平均年龄
# 多重分组
df.groupby(['城市', '性别']).agg({
'年龄': 'mean',
'收入': ['sum', 'count']
})
3. 数据透视表
pd.pivot_table(df,
index='城市',
columns='性别',
values='收入',
aggfunc='mean')
五、Pandas数据可视化
Pandas可以搭配Matplotlib,轻松实现数据可视化:
import matplotlib.pyplot as plt
# 折线图
df['销售额'].plot(figsize=(10, 5), title='销售额趋势')
# 柱状图
df.groupby('城市')['销售额'].sum().plot.bar()
# 箱线图
df.boxplot(column='年龄', by='城市')
plt.show()
有关Pandas和Matplotlib的搭配使用,另外会专门撰写文章介绍,敬请期待哦~
六、Pandas高级应用
1. 时间序列分析
# 设置日期索引
df.set_index('日期', inplace=True)
# 重采样
df.resample('M').mean() # 按月重采样
# 滚动窗口
df.rolling(window=7).mean() # 7天移动平均
2. 数据合并
# 纵向合并
pd.concat([df1, df2])
# 横向合并
pd.merge(df1, df2, on='关键列')
# 类似SQL的连接
pd.merge(left, right, how='left', on='key')
3. 性能优化技巧
# 使用高效的数据类型
df['列名'] = df['列名'].astype('category')
# 分块处理大数据
chunk_size = 100000
for chunk in pd.read_csv('big_data.csv', chunksize=chunk_size):
process(chunk)
七、实战案例:电商销售数据分析
让我们通过一个实际案例巩固所学知识。假设我们有一份电商销售数据sales.csv,包含以下字段:订单ID、日期、产品类别、销售额、利润、地区等。
# 1. 数据加载与探索
sales = pd.read_csv('sales.csv')
print(sales.info())
print(sales.describe())
# 2. 数据清洗
sales['日期'] = pd.to_datetime(sales['日期'])
sales = sales.dropna()
# 3. 月度销售额分析
monthly_sales = sales.set_index('日期').resample('M')['销售额'].sum()
monthly_sales.plot(title='月度销售额趋势')
# 4. 产品类别分析
category_sales = sales.groupby('产品类别')['销售额'].sum().sort_values(ascending=False)
category_sales.plot.pie(autopct='%1.1f%%')
# 5. 地区利润分析
region_profit = sales.groupby('地区')['利润'].mean().sort_values()
region_profit.plot.barh(title='各地区平均利润')
八、总结与思维导图
通过本文的学习,相信大家对Pandas已经有了全面的认识。作为Python数据分析的核心库,Pandas的强大之处在于:
- 灵活的数据结构:DataFrame和Series让表格数据处理变得简单
- 丰富的数据操作:从数据清洗到统计分析一气呵成
- 高效的性能:底层基于NumPy,处理大数据依然高效
- 完美的生态:与Matplotlib、Scikit-learn等库无缝集成
最后附上Pandas核心功能的思维导图,帮助大家系统掌握:
记住唐叔的话:学会Pandas,数据分析不再难! 大家在实践中遇到任何问题,欢迎在评论区留言交流。