博客
关于我
Pandas数据结构之DataFrame常见操作
阅读量:793 次
发布时间:2023-02-26

本文共 1782 字,大约阅读时间需要 5 分钟。

Pandas DataFrame 操作指南

提取、添加、删除列

DataFrame 操作起来就像是一个带索引的字典。通过括号操作符可以快速提取、设置或删除列。例如:

df['one']  # 提取列 'one'
df['three'] = df['one'] * df['two'] # 设置新列 'three'
df.drop('two') # 删除列 'two'

删除操作可以使用 delpop 方法:

del df['two']  # 删除列 'two'
three = df.pop('three') # 返回并删除列 'three'

还可以通过赋值来添加新列,甚至使用多线程的广播机制添加多维数组:

df.insert(1, 'bar', df['one'])  # 在位置 1 插入新列 'bar'

方法链分配新列

Pandas 提供 assign() 方法,类似于 dplyr 的 mutate,用于通过现有列创建新列。例如:

iris = pd.read_csv('data/iris.data')
iris = iris.assign(sepal_ratio=iris['SepalWidth'] / iris['SepalLength'])

assign() 可以接收函数或直接赋值,返回新列的 DataFrame 副本:

iris = iris.query('SepalLength > 5').assign(
sepal_ratio=lambda x: x['SepalWidth'] / x['SepalLength'],
petal_ratio=lambda x: x['PetalWidth'] / x['PetalLength']
)

支持依赖赋值(在 3.6 版及以上),可以在同一个 assign() 调用中引用之前创建的列。


索引与选择

基本操作

  • 选择列df[col] 返回 Series。
  • 选择行df.loc[label]df.iloc[loc] 返回行数据。
  • 行切片df[5:10] 返回特定行范围的 DataFrame。

高级索引

  • 布尔向量选择df[bool_vec] 根据布尔向量筛选行。
  • 多条件筛选df[df['A'] > 10 & df['B'] < 5]

数据对齐与运算

Pandas 会自动对齐列和索引进行运算。例如:

df1 + df2  # 按列和索引对齐进行加法
df - 5 # 对 DataFrame 和常数 5 进行减法
df * 4 # 对 DataFrame 乘以标量 4
df | df2 # 布尔运算
df ^ df2 # 异或运算
df / 0 # 对零除法

默认行为是按行和列的标签进行对齐,适用于标量和其他 DataFrame。


转置

通过 T 属性或 transpose() 方法可以将 DataFrame 转置:

df = pd.DataFrame(np.random.randn(3, 4))
df.head().T # 转置后的 DataFrame

应用 NumPy 函数

Pandas Series 和 DataFrame 支持直接使用 NumPy ufunc。例如:

np.exp(df)  # 对 DataFrame 的每一列应用指数函数
np.remainder(df1, df2) # 对多个 Series 进行运算

Pandas 会自动对齐输入数据,处理缺失值和标签。


控制台显示

使用 info() 查看数据摘要,to_string() 转换为字符串表格:

print(df.info())  # 查看数据摘要
df.to_string() # 显示 DataFrame 作为字符串

通过设置 display.widthdisplay.max_colwidth 调整列宽度。


列属性访问与 IPython 代码补全

DataFrame 的列可以像属性访问一样访问:

df.foo1  # 访问列 'foo1'

IPython 提供代码补全功能,按 Tab 键可查看可能的代码。


以上操作涵盖了 Pandas DataFrame 的基础操作,适合日常数据处理和分析。

转载地址:http://cvvfk.baihongyu.com/

你可能感兴趣的文章
oracle字符集
查看>>
Oracle学习
查看>>
oracle数据库笔记---oracleweb视图使用流程,及plsql安装
查看>>
Transformer 架构解释
查看>>
Oracle数据库表空间 数据文件 用户 以及表创建的SQL代码
查看>>
Oracle数据库验证IMP导入元数据是否会覆盖历史表数据
查看>>
Oracle未开启审计情况下追踪表变更记录
查看>>
Oracle查看数据库会话连接
查看>>
oracle树形查询 start with connect by
查看>>
oracle毕业论文题目,历届毕业论文申报题目大全.doc
查看>>
oracle深度解析检查点
查看>>
oracle用户改名
查看>>
oracle用户解压不了,PLSQL developer 连接不上64位Oracle 的解决方法
查看>>
oracle用户解锁
查看>>
Oracle用游标删除重复数据
查看>>
oracle的内置函数
查看>>
Oracle的存储结构
查看>>
Oracle的聚合函数group by结合CUBE和ROLLUP的使用
查看>>
Oracle监听配置、数据库实例配置等
查看>>
Oracle笔记(十三) 视图、同义词、索引
查看>>