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