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

相关推荐
青 春 记 忆8 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO38 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
临沂GEO10 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
大模型码小白10 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
荷蒲12 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)13 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机13 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69214 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel
迷迭香yy15 小时前
Python构建转融券多空识别系统从接口到因子的全流程 IG50免费开源股票数据API接口
开发语言·python·开源
月光船幽幽15 小时前
真实即粗糙,光滑是伪造
人工智能·python