Pandas 数据处理完全指南

2026-07-01 · 阅读 8 分钟 · 数据分析

← 返回首页

什么是 Pandas?

Pandas 是 Python 中最强大的数据处理和分析库之一。它提供了快速、灵活的数据结构,专门用于处理结构化(表格化)数据。

安装与导入

pip install pandas

import pandas as pd
import numpy as np

核心数据结构

Series - 一维数组

Series 是带标签的一维数组,可以存储任何类型的数据。

# 创建 Series
s = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'd', 'e'])
print(s)

# 输出:
# a    1
# b    3
# c    5
# d    7
# e    9
# dtype: int64

DataFrame - 二维表格

DataFrame 是 pandas 中最常用的数据结构,类似 Excel 表格。

# 创建 DataFrame
data = {
    '姓名': ['张三', '李四', '王五', '赵六'],
    '年龄': [25, 30, 28, 35],
    '城市': ['北京', '上海', '广州', '深圳']
}
df = pd.DataFrame(data)
print(df)

# 输出:
#    姓名  年龄  城市
# 0  张三   25  北京
# 1  李四   30  上海
# 2  王五   28  广州
# 3  赵六   35  深圳

数据读取与写入

# 读取 CSV 文件
df = pd.read_csv('data.csv')

# 读取 Excel 文件
df = pd.read_excel('data.xlsx')

# 读取 JSON 文件
df = pd.read_json('data.json')

# 写入 CSV 文件
df.to_csv('output.csv', index=False)

# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)

数据探索

# 查看前 5 行
df.head()

# 查看数据基本信息
df.info()

# 查看统计描述
df.describe()

# 查看数据形状
df.shape

# 查看列名
df.columns.tolist()

数据筛选

# 选择单列
df['年龄']

# 选择多列
df[['姓名', '城市']]

# 条件筛选
df[df['年龄'] > 28]

# 多条件筛选
df[(df['年龄'] > 25) & (df['城市'] == '上海')]

# 使用 query 方法
df.query('年龄 > 25 and 城市 == "上海"')

数据清洗

# 检查缺失值
df.isnull().sum()

# 删除缺失值
df.dropna()

# 填充缺失值
df.fillna(0)
df.fillna(df.mean())

# 删除重复行
df.drop_duplicates()

# 重命名列
df.rename(columns={'旧列名': '新列名'})

数据转换

# 添加新列
df['薪资'] = df['年龄'] * 1000

# 应用函数
df['姓名大写'] = df['姓名'].apply(lambda x: x.upper())

# 分组聚合
df.groupby('城市')['年龄'].mean()

# 数据透视表
pd.pivot_table(df, values='年龄', index='城市', aggfunc='mean')

实际案例:电商数据分析

import pandas as pd

# 读取销售数据
sales = pd.read_csv('sales.csv')

# 查看数据概况
print(f"数据形状: {sales.shape}")
print(sales.head())

# 按产品类别统计销售额
category_sales = sales.groupby('category')['amount'].sum().sort_values(ascending=False)
print("\n各类别销售额:")
print(category_sales)

# 按月份统计销售趋势
sales['date'] = pd.to_datetime(sales['date'])
monthly_sales = sales.set_index('date').resample('M')['amount'].sum()
print("\n月度销售趋势:")
print(monthly_sales)
小贴士: 在处理大型数据集时,建议使用 df.info() 查看内存占用,使用 chunksize 参数分块读取大文件。

总结

Pandas 是数据分析的瑞士军刀,掌握它的核心功能将大大提高你的数据处理效率。建议多练习实际项目,将理论知识转化为实践能力。