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

相关推荐
纤纡.5 小时前
PyTorch 入门精讲:从框架选择到 MNIST 手写数字识别实战
人工智能·pytorch·python
kjkdd5 小时前
6.1 核心组件(Agent)
python·ai·语言模型·langchain·ai编程
小镇敲码人5 小时前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
萧鼎5 小时前
Python 包管理的“超音速”革命:全面上手 uv 工具链
开发语言·python·uv
alvin_20056 小时前
python之OpenGL应用(二)Hello Triangle
python·opengl
铁蛋AI编程实战6 小时前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
jiang_changsheng6 小时前
RTX 2080 Ti魔改22GB显卡的最优解ComfyUI教程
python·comfyui
0思必得07 小时前
[Web自动化] Selenium处理滚动条
前端·爬虫·python·selenium·自动化
沈浩(种子思维作者)7 小时前
系统要活起来就必须开放包容去中心化
人工智能·python·flask·量子计算
2301_790300967 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python