Python Pandas 数据处理核心指南
1. 简介与安装
Pandas 是 Python 语言中用于数据分析的核心库,基于 NumPy 构建。它提供了高性能、易用的数据结构和数据分析工具,广泛应用于数据清洗、转换、分析和可视化领域。
Python Pandas 是数据分析的核心库,提供高效的数据结构 Series 和 DataFrame。支持 CSV、Excel、SQL 等多种数据读写,具备强大的缺失值处理、重复值删除及类型转换能力。通过 groupby、merge 等操作实现数据聚合与合并,结合 matplotlib 完成可视化分析。掌握索引选择、时间序列处理及性能优化技巧,可显著提升数据处理效率。

Pandas 是 Python 语言中用于数据分析的核心库,基于 NumPy 构建。它提供了高性能、易用的数据结构和数据分析工具,广泛应用于数据清洗、转换、分析和可视化领域。
使用 pip 进行安装:
pip install pandas
同时建议安装依赖库 numpy 和 matplotlib:
pip install numpy matplotlib
Pandas 主要提供两种数据结构:Series 和 DataFrame。
Series 是一维带标签的数组,可以存储任何数据类型。
import pandas as pd
import numpy as np
# 创建 Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
DataFrame 是二维表格型数据结构,由行索引和列索引组成,每一列可以是不同的数据类型。
# 创建 DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': pd.to_datetime(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04']),
'C': pd.Series(1, index=list(range(4)), dtype='float32'),
'D': np.array([3] * 4, dtype='int32'),
'E': pd.Categorical(['test', 'train', 'test', 'train']),
'F': 'foo'
})
print(df)
Pandas 支持多种文件格式的读写操作。
df = pd.read_csv('data.csv')
df = pd.read_excel('data.xlsx')
import sqlite3
conn = sqlite3.connect('example.db')
df = pd.read_sql('SELECT * FROM table', conn)
df = pd.read_json('data.json')
df.to_csv('output.csv', index=False)
df.to_excel('output.xlsx', index=False)
数据清洗是数据分析中最耗时的步骤之一,Pandas 提供了丰富的工具。
# 删除包含缺失值的行
df_clean = df.dropna()
# 填充缺失值为特定值
df_filled = df.fillna(0)
# 填充缺失值为均值
df_mean = df.fillna(df.mean())
# 删除重复行
df_unique = df.drop_duplicates()
# 统计重复次数
df.duplicated().sum()
# 将某一列转换为浮点型
df['col'] = df['col'].astype(float)
# 时间格式转换
df['date'] = pd.to_datetime(df['date'])
# 筛选出特定范围的数据
df_filtered = df[(df['value'] > 0) & (df['value'] < 100)]
高效的索引选择是 Pandas 性能的关键。
# 按列名获取
col_data = df['column_name']
# 按位置获取
data_at_pos = df.iloc[0]
# 按标签获取
data_at_label = df.loc[0]
# 筛选条件
df[df['age'] > 18]
# 多条件筛选
df[(df['age'] > 18) & (df['city'] == 'Beijing')]
# 升序排序
df.sort_values(by='column_name', ascending=True)
# 降序排序
df.sort_values(by='column_name', ascending=False)
GroupBy 操作是数据分析中最重要的功能之一。
# 按照某一列进行分组,并计算每组的和
grouped = df.groupby('category').sum()
# 对某几列进行聚合计算
df.agg({'col1': 'mean', 'col2': 'sum'})
# 自定义聚合函数
df.groupby('group')['value'].agg(['mean', 'std', 'count'])
# 创建透视表
pivot_df = pd.pivot_table(df, values='sales', index='region', columns='product', aggfunc='sum')
# 纵向拼接
df_concat = pd.concat([df1, df2], axis=0)
# 横向拼接
df_concat = pd.concat([df1, df2], axis=1)
# 类似 SQL 的 join
df_merged = pd.merge(df1, df2, on='key', how='inner')
# 长表转宽表
df_wide = df.pivot(index='date', columns='variable', values='value')
# 宽表转长表
df_long = df_wide.melt(var_name='variable', value_name='value')
Pandas 在时间序列分析方面表现卓越。
# 设置日期为索引
df.set_index('date', inplace=True)
# 重采样
df_resampled = df.resample('M').mean() # 按月重采样
# 计算移动平均
df['rolling_mean'] = df['value'].rolling(window=3).mean()
# 添加一个月
df['next_month'] = df.index + pd.offsets.MonthEnd(1)
虽然 Matplotlib 更强大,但 Pandas 内置了便捷的绘图接口。
import matplotlib.pyplot as plt
# 折线图
df.plot(x='date', y='value', kind='line')
# 柱状图
df.plot(kind='bar', x='category', y='value')
# 散点图
df.plot(kind='scatter', x='x_col', y='y_col')
# 饼图
df.plot(kind='pie', y='value')
plt.show()
chunksize 参数分块读取。Python Pandas 模块是数据处理领域的标准工具。通过掌握其核心数据结构、IO 操作、清洗方法、分组聚合及时间序列处理功能,开发者能够高效完成从数据获取到分析可视化的全流程工作。结合 NumPy 的科学计算能力和 Matplotlib 的可视化能力,Pandas 构成了 Python 数据科学生态的基石。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online