Pandas数据处理核心要点
数据结构:
Series:一维带标签数组,核心是index和values
DataFrame:二维表格,由多个Series组成,有index和columns
数据读取/保存:
import pandas as pd
df = pd.read_csv('data.csv') # 读取CSV
df.to_csv('output.csv', index=False) # 保存CSV
# 支持Excel、JSON、SQL等多种格式
数据查看:
df.head() # 前5行
df.info() # 数据类型和内存
df.describe() # 统计摘要
df.shape # 行列数
数据清洗:
# 处理缺失值
df.dropna() # 删除缺失值
df.fillna(value) # 填充缺失值
# 去重
df.drop_duplicates()
# 类型转换
df['col'] = df['col'].astype('int')
数据筛选:
# 条件筛选
df[df['score'] > 80]
df.query('score > 80 and age < 30')
# 行列选择
df.loc[row_indexer, col_indexer] # 标签索引
df.iloc[row_position, col_position] # 位置索引
数据操作:
# 新增列
df['new_col'] = df['col1'] + df['col2']
# 分组聚合
df.groupby('category')['value'].mean()
# 排序
df.sort_values('column', ascending=False)
# 合并数据
pd.concat([df1, df2]) # 拼接
pd.merge(df1, df2, on='key') # 合并
时间处理:
df['date'] = pd.to_datetime(df['date'])
df['year'] = df['date'].dt.year
向量化操作:
优先使用内置方法,避免循环:
# 好
df['col'] = df['col'].apply(lambda x: x*2)
# 更好(如果支持向量化)
df['col'] = df['col'] * 2
内存优化:
- 使用
category类型处理重复字符串
- 用
int8/int16等替代默认int64
- 及时删除不需要的列:
df.drop(columns=['col'], inplace=True)
常用技巧:
df.nlargest(5, 'column') 获取前N大值
df.pivot_table() 数据透视
df.sample(n=10) 随机抽样
df.corr() 计算相关性
一句话建议: 掌握这些核心操作能解决90%的日常数据处理需求。