当前位置: 首页 > news >正文

【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. 制作速查表:将常用操作打印成表格随时查阅。

相关文章:

  • SpringBoot学习Day2
  • SAP学习笔记 - 用Deepseek 整理SAP 09 - SAP中 BAPI 的核心概念,以及常用 BAPI 一览
  • (二十三)Dart 中的 Mixins 使用教程
  • C之(16)scan-build与clang-tidy使用
  • Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能
  • 小白电路设计-设计5-可调式单电源直流稳压电路设计
  • 力扣经典算法篇-4-删除有序数组中的重复项 II(中等)
  • Python-Django入手
  • git的clone报错unable to access 443
  • 批量将 PDF 文档中的图片提取到指定文件夹
  • 云服务器Ubuntu安装宝塔面板MongoDB修改配置文件本地连接
  • AI Agent 实战:搭建个人在线旅游助手
  • HarmonyOS NEXT开发进阶(十四):HarmonyOS应用开发者基础认证试题集汇总及答案解析
  • 使用kubectl命令
  • GAN随手笔记
  • VC6.0 编译时报错:Error spawning ‘vcspawn.exe‘. The build could not be performed
  • 软件工程面试题(十五)
  • 如何在set和priorty_queue中自定义排序方式
  • 【软考-架构】10.3、处理流程设计-系统设计-人机界面设计
  • Mybatis中封装数据如何自定义一个数据类型处理器