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

本文共 1767 字,大约阅读时间需要 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 乘以标量 4df | 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/

你可能感兴趣的文章
React Collapse Pane 项目教程
查看>>
php判断ip黑名单程序代码
查看>>
php判断复选框是否被选中的方法
查看>>
PHP判断指定目录下是否存在文件
查看>>
php判断数组是否为空
查看>>
PHP判断数组是否有重复值、获取重复值
查看>>
springboot基于Web的社区留守儿童管理系统源码毕设+论文
查看>>
Springboot基于Redisson实现Redis分布式可重入锁【案例到源码分析】
查看>>
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
查看>>
PHP加密与安全的最佳实践
查看>>
PHP加速器eaccelerator导致php-fpm进程卡死原因分析
查看>>
PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
查看>>
php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
查看>>
PHP去掉转义符
查看>>
php去除字符串开头或末尾的字符(例如逗号)
查看>>
php反射api
查看>>
PHP反射ReflectionClass、ReflectionMethod 入门教程
查看>>
PHP反射机制
查看>>
php取当天的最后一秒_Docker快速搭建PHP开发环境详细教程
查看>>
php取绝对值
查看>>