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

相关推荐
fie88892 小时前
MATLAB有限元框架程序
python·算法·matlab
我是小疯子662 小时前
Python3.11.4离线安装PyInstaller全攻略
python
alphaTao3 小时前
LeetCode 每日一题 2026/1/12-2026/1/18
python·算法·leetcode
Fasda123453 小时前
基于yolo11-C3k2-AKConv的太阳能电池片缺陷检测技术分享
python
观测云3 小时前
AWS Lambda Python 应用可观测最佳实践(DDTrace)
python·云计算·aws
翔云1234563 小时前
(MySQLdb._exceptions.OperationalError) (2006, ‘MySQL server has gone away‘)
网络·python
我是一只小青蛙8884 小时前
Python办公自动化:6大实用库速览
python
Duang007_4 小时前
【LeetCodeHot100 超详细Agent启发版本】两数之和 (Two Sum)
java·人工智能·python
企业对冲系统官4 小时前
基差风险管理系统集成说明与接口规范
大数据·运维·python·算法·区块链·github