Python Pandas 从入门到精通全指南

好的!这是一份完整的Python Pandas库学习指南,涵盖从基础概念到实战应用的各个方面。


1. Pandas简介

Pandas是一个基于NumPy的开源Python库,专门用于数据处理与分析。其核心数据结构为Series(一维)和DataFrame(二维),可高效处理结构化数据(如CSV、Excel、SQL表)。


2. 核心数据结构

2.1 Series
  • 定义:带索引的一维数组
python 复制代码
import pandas as pd
s = pd.Series([1, 3, 5, 7], index=['a', 'b', 'c', 'd'])

操作

python 复制代码
print(s.values)  # 输出值数组:[1 3 5 7]
print(s.index)   # 输出索引:Index(['a', 'b', 'c', 'd'], dtype='object')
2.2 DataFrame
  • 定义:表格型数据结构,含行索引和列标签
python 复制代码
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
df = pd.DataFrame(data)

输出

复制代码
   Name  Age
0  Alice  25
1   Bob   30

3. 数据读写

3.1 读取数据
python 复制代码
# 从CSV读取
df = pd.read_csv('data.csv')

# 从Excel读取
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

# 从SQL数据库读取
from sqlalchemy import create_engine
engine = create_engine('sqlite:///database.db')
df = pd.read_sql('SELECT * FROM table', engine)
3.2 写入数据
python 复制代码
df.to_csv('output.csv', index=False)
df.to_excel('output.xlsx', sheet_name='Results')
df.to_sql('new_table', engine, if_exists='replace')

4. 数据探索与操作

4.1 查看数据
python 复制代码
df.head(3)      # 前3行
df.tail()       # 后5行(默认)
df.info()       # 数据结构信息
df.describe()   # 统计摘要(数值列)
4.2 索引与选择
python 复制代码
# 选择列
df['Name']        # 单列
df[['Name', 'Age']] # 多列

# 选择行
df.iloc[0]        # 第0行(位置索引)
df.loc[df['Age'] > 25] # 条件筛选

# 设置索引
df.set_index('Name', inplace=True)

5. 数据清洗

5.1 处理缺失值
python 复制代码
# 检测缺失值
df.isnull().sum()

# 填充缺失值
df['Age'].fillna(df['Age'].mean(), inplace=True)

# 删除缺失值
df.dropna(subset=['Age'], inplace=True)
5.2 数据类型转换
python 复制代码
df['Date'] = pd.to_datetime(df['Date'])
df['Price'] = df['Price'].astype(float)
5.3 去重
python 复制代码
df.drop_duplicates(subset=['Email'], keep='last')

6. 数据合并与重塑

6.1 合并
python 复制代码
# 纵向合并
pd.concat([df1, df2], axis=0)

# 横向合并
pd.merge(left=df1, right=df2, on='key', how='inner')
6.2 重塑
python 复制代码
# 透视表
pivot_df = df.pivot_table(values='Sales', index='Region', columns='Month', aggfunc='sum')

7. 分组与聚合

python 复制代码
# 分组统计
grouped = df.groupby('Department')
grouped['Salary'].mean()

# 多维度聚合
df.groupby(['Year', 'Category'])['Revenue'].agg(['sum', 'mean', 'count'])

8. 时间序列处理

python 复制代码
# 时间索引
df = df.set_index('Timestamp')

# 重采样
daily_sales = df['Sales'].resample('D').sum()

# 移动平均
df['MA_7'] = df['Price'].rolling(window=7).mean()

9. 数据可视化(整合Matplotlib)

python 复制代码
import matplotlib.pyplot as plt
df.plot(kind='line', x='Date', y='Price')
plt.title('价格趋势')
plt.show()

10. 实战案例:销售数据分析

python 复制代码
# 加载数据
sales = pd.read_csv('sales_data.csv')

# 数据清洗
sales = sales.dropna()
sales['Date'] = pd.to_datetime(sales['Date'])

# 月度销售额分析
monthly_sales = sales.groupby(sales['Date'].dt.to_period('M'))['Amount'].sum()

# 可视化
monthly_sales.plot(kind='bar')
plt.ylabel('销售额(万元)')
plt.title('月度销售趋势')

11. 高级技巧

  • 向量化操作 :避免循环,使用df.apply()或NumPy函数
  • 性能优化 :使用df.eval()pd.eval()加速计算
  • 分类数据df['Category'] = df['Category'].astype('category')

12. 学习资源

  • 官方文档pandas.pydata.org
  • 书籍:《Python for Data Analysis》(Wes McKinney)
  • 练习数据集:Kaggle、UCI Machine Learning Repository

掌握这些内容后,你将能高效处理90%的日常数据分析任务!建议通过实际项目(如电商分析、金融数据建模)深化技能。

相关推荐
珺毅同学4 分钟前
YOLO生成预测json标签迁移问题
python·yolo·json
骑士雄师18 分钟前
18.4 长期记忆可修改版
python
~小先生~35 分钟前
Python从入门到放弃(一)
开发语言·python
天佑木枫1 小时前
第2天:变量与数据类型 —— 让程序记住信息
python
Dust-Chasing2 小时前
Claude Code源码剖析 - Claude Code 上下文压缩机制
人工智能·python·ai
Cloud_Shy6183 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 33 - 35)
开发语言·人工智能·笔记·python·学习方法
abcy0712134 小时前
python pandas csv异步后台清洗前端优先返回成功信息
前端·python·pandas
颜酱4 小时前
LangChain使用RAG 入门:让大模型读懂你的私有文档
python·langchain
天天进步20154 小时前
Python全栈项目--校园智能宿舍管理系统
开发语言·python
测试员周周5 小时前
【AI测试智能体-面试】AI测试面试60题(附回答思路)
人工智能·python·功能测试·测试工具·单元测试·自动化·测试用例