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%的日常数据分析任务!建议通过实际项目(如电商分析、金融数据建模)深化技能。

相关推荐
念恒1230626 分钟前
Python(复杂判断)
python·学习
无敌的黑星星37 分钟前
Java8 CompletableFuture 实战指南
linux·前端·python
StockTV1 小时前
印度股票实时数据 NSE和BSE的实时行情、K 线及指数数据
java·开发语言·spring boot·python
chaofan9801 小时前
GPT-5.5 领衔 Image 2.0:像素级控制时代,AI 绘图告别开盲盒
开发语言·人工智能·python·gpt·自动化·api
七颗糖很甜1 小时前
“十五五”气象发展规划:聚焦五大核心任务
大数据·python·算法
爱码小白1 小时前
Python 异常处理 完整学习笔记
开发语言·python
芝士就是力量啊 ೄ೨2 小时前
Python如何编写一个简单的类
开发语言·python
胖虎喜欢静香2 小时前
从零到一快速实现 Mini DeepResearch
人工智能·python·开源
qq_392690662 小时前
Redis怎样应对Redis集群整体宕机带来的雪崩
jvm·数据库·python
Muyuan19982 小时前
22.让 RAG Agent 更像真实产品:聊天页面优化、PDF 上传、知识库重建与检索片段展示
python·django·pdf·fastapi