一、Pandas简介
Pandas是Python最强大的数据处理库,专为处理结构化数据设计。名称源自"Panel Data"(面板数据),具备以下核心优势:
- 高效处理百万级数据
- 支持CSV/Excel/SQL等多种数据源
- 提供清洗、转换、分析的完整工具链
二、环境准备
# 安装命令
pip install pandas
# 基础导入方式(行业标准)
import pandas as pd
import numpy as np # 常配合使用
三、核心数据结构
1. Series(一维数据)
创建示例:
# 从列表创建
scores = pd.Series([90, 85, 92, 88],
index=['Alice', 'Bob', 'Charlie', 'David'],
name='Math Scores')
print(scores)
输出结果:
复制代码Alice 90
Bob 85
Charlie 92
David 88
Name: Math Scores, dtype: int64
2. DataFrame(二维表格)
创建方式:
# 字典方式创建
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 28],
'City': ['New York', 'London', 'Paris']
}
df = pd.DataFrame(data)
# 设置索引
df.set_index('Name', inplace=True)
生成的DataFrame:
Name | Age | City |
Alice | 25 | New York |
Bob | 30 | London |
Charlie | 28 | Paris |
四、数据操作实战
案例:电商销售数据分析
1. 数据加载
# 读取CSV文件
sales = pd.read_csv('sales_data.csv',
parse_dates=['order_date'])
# 显示前3行
print(sales.head(3))
2. 数据清洗
# 处理缺失值
sales['price'] = sales['price'].fillna(sales['price'].mean())
# 删除重复记录
sales.drop_duplicates(inplace=True)
# 类型转换
sales['quantity'] = sales['quantity'].astype(int)
3. 数据分析
常用操作示例:
# 筛选2023年Q1数据
q1_sales = sales[sales['order_date'].between('2023-01-01', '2023-03-31')]
# 按品类统计销售额
category_sales = sales.groupby('category')['total'].sum().sort_values(ascending=False)
# 计算移动平均
sales['7d_avg'] = sales['total'].rolling(window=7).mean()
4. 数据合并
# 合并订单与用户信息
user_info = pd.read_csv('users.csv')
merged_data = pd.merge(sales, user_info, on='user_id', how='left')
# 横向拼接季度报表
full_year = pd.concat([q1, q2, q3, q4], axis=0)
五、进阶技巧
1. 时间序列处理
# 设置时间索引
sales.set_index('order_date', inplace=True)
# 按周重采样
weekly_sales = sales.resample('W').sum()
2. 高效数据筛选
# 多条件查询
high_value = sales[(sales['total'] > 1000) &
(sales['category'].isin(['Electronics', 'Furniture']))]
# 使用query方法
luxury_orders = sales.query("price > 500 and payment_type == 'Credit'")
3. 内存优化
# 类型转换减少内存占用
sales['category'] = sales['category'].astype('category')
sales['user_id'] = sales['user_id'].astype('int32')
# 查看内存使用
print(sales.info(memory_usage='deep'))
六、可视化集成
import matplotlib.pyplot as plt
# 绘制月度趋势图
monthly_sales.plot(kind='line',
title='Monthly Sales Trend',
figsize=(12,6))
plt.xlabel('Month')
plt.ylabel('Sales Amount')
plt.show()
七、性能优化建议
- 尽量使用向量化操作替代循环
- 适当使用astype转换数据类型
- 大数据集使用dask并行处理
- 避免链式赋值,使用.loc明确索引
八、学习资源推荐
- 官方文档:pandas.pydata.org
- 经典书籍:《Python for Data Analysis》
- 实战项目:Kaggle泰坦尼克生存预测
- 可视化工具:Pandas+Seaborn组合
掌握Pandas需要持续实践,建议从实际项目入手,逐步探索更多高级功能。记住:数据质量决定分析结果,清洗步骤不可忽视!
希望这篇全面解析能帮助您快速掌握Pandas核心技能。如有疑问,欢迎在评论区交流讨论!