【Pandas DataFrame】

以下是 Pandas DataFrame 的核心知识点总结,用结构化分类帮你高效记忆关键操作和概念:


1. 基础操作

创建DataFrame
方法 代码示例 说明
从字典创建 df = pd.DataFrame({'A': [1,2], 'B': [3,4]}) 字典键为列名,值为数据
从列表创建 df = pd.DataFrame([[1,3], [2,4]], columns=['A','B']) 需指定列名
从CSV读取 df = pd.read_csv('data.csv') 常用header, index_col参数
查看数据
方法 作用
df.head(n) 查看前n行(默认5)
df.tail(n) 查看后n行
df.info() 显示列名、类型、非空值数量
df.describe() 数值列统计摘要(均值、分位数等)

2. 索引与选择

核心方法
操作 代码示例 特点
列选择 df['A']df.A 返回Series(单列)
多列选择 df[['A', 'B']] 返回DataFrame
行选择 df.loc[行标签] 按标签选择(支持切片、布尔索引)
位置选择 df.iloc[行位置] 按整数位置选择(类似列表切片)
布尔筛选
df[df['A'] > 5]                # 单条件
df[(df['A'] > 5) & (df['B'] < 10)]  # 多条件组合
df.query('A > 5 and B < 10')   # 字符串表达式筛选(更简洁)

3. 数据清洗

缺失值处理
方法 代码示例 说明
检测缺失值 df.isna() 返回布尔矩阵
删除缺失行 df.dropna(axis=0) 删除包含NaN的行
填充缺失值 df.fillna(0) 用固定值填充
前向填充 df.fillna(method='ffill') 用前一行数据填充
重复值处理
df.duplicated()          # 标记重复行
df.drop_duplicates()     # 删除重复行
类型转换
df['A'] = df['A'].astype(int)    # 强制类型转换
pd.to_datetime(df['date_col'])   # 转日期类型

4. 数据操作

列操作
操作 代码示例
添加新列 df['C'] = df['A'] + df['B']
删除列 df.drop('A', axis=1, inplace=True)
重命名列 df.rename(columns={'A': '新列名'})
行操作
df.append(new_row)       # 添加行(已弃用,建议用pd.concat)
df.drop(index=[0,1])     # 删除指定行
排序
df.sort_values(by='A', ascending=False)  # 按列值排序
df.sort_index()                          # 按索引排序

5. 数据合并与连接

方法 代码示例 适用场景
纵向拼接 pd.concat([df1, df2], axis=0) 相同结构数据堆叠
横向拼接 pd.concat([df1, df2], axis=1) 按列合并
主键合并 pd.merge(df1, df2, on='key', how='inner') SQL风格的连接(支持left/right/outer)
索引合并 df1.join(df2, how='left') 按索引合并

6. 分组与聚合

分组操作
grouped = df.groupby('A')          # 按列'A'分组
grouped = df.groupby(['A', 'B'])   # 多列分组
聚合计算
grouped.sum()                      # 每组求和
grouped.agg({'C': 'sum', 'D': 'mean'})  # 不同列应用不同聚合函数
透视表
pd.pivot_table(df, values='D', index='A', columns='B', aggfunc=np.mean)

7. 时间序列处理

日期解析
df['date'] = pd.to_datetime(df['date_str'])
df.set_index('date', inplace=True)  # 设为索引
重采样
df.resample('M').mean()            # 按月重采样求平均

8. 高效内存管理

技巧 代码示例 作用
优化数据类型 df['A'] = df['A'].astype('int32') 减少内存占用
使用分类类型 df['category_col'] = df['category_col'].astype('category') 文本列内存优化

9. 避免常见错误

  1. 链式赋值警告
    ❌ 错误写法:df[df.A > 5]['B'] = 10
    ✅ 正确写法:df.loc[df.A > 5, 'B'] = 10

  2. 浅拷贝问题
    修改切片数据时使用.copy()
    df_sub = df[df.A > 5].copy()


10. 高频函数速查表

函数/方法 用途
df.shape 获取行数和列数
df.columns 查看列名列表
df.set_index() 设置索引列
df.reset_index() 重置索引为默认整数索引
df.melt() 宽表转长表
df.apply() 对行/列应用函数

记忆技巧

  1. 按操作场景分类记忆:索引选择、清洗、聚合等分开整理。
  2. 对比记忆:如loc vs ilocmerge vs join
  3. 实战练习:用真实数据集(如泰坦尼克数据集)反复练习核心操作。
  4. 制作速查表:将常用操作打印成表格随时查阅。

你可能感兴趣的:(pandas,大数据)