Polars中与Pandas .iloc方法等效的行选择方案是什么?
按行号选择Polars DataFrame单行的简洁方法
问题描述
我正在寻找按行号选择Polars.DataFrame单行的推荐方法,该方法需与Pandas.DataFrame的.iloc[[n]]方法(n为给定整数)大致等效。
当Polars导入为pl,且有Polars DataFrame df时,我目前的实现方式如下:
# 示例 n = 3 # 创建行索引,筛选指定行,删除行索引 new_df = ( df.with_row_index() .filter(pl.col('index') == n) .select(pl.exclude('index')) )我正在从Pandas迁移到Polars,已阅读Pandas转Polars的迁移指南,但该指南未提及此特定场景的简洁解决方案。补充说明:我需要返回Polars.DataFrame对象的实现方法。
请问有没有更简洁的实现方式?
解决方案
Polars提供了两种更简洁的方式,无需手动处理行索引,且均返回Polars.DataFrame对象:
方法1:使用.slice()方法
通过slice指定起始行号和要选取的行数(单行设为1),直接获取目标行:
n = 3 new_df = df.slice(n, 1)
方法2:使用.iloc属性(Polars v0.19.0及以上版本支持)
Polars在新版本中适配了Pandas风格的.iloc索引,传入列表形式的行号即可得到DataFrame:
n = 3 new_df = df.iloc[[n]]
这两种方法都能完美替代你当前的实现,操作更直接高效。
内容的提问来源于stack exchange,提问作者montol
相关产品推荐
相关产品推荐

