You need to enable JavaScript to run this app. 如何使用iloc提取DataFrame指定行以生成独立的新DataFrame
优惠活动
大模型
产品
解决方案
定价
更多

如何使用iloc提取DataFrame指定行以生成独立的新DataFrame

Pandas提取指定行生成新DataFrame的解决方法

最优写法(无需循环)

pandas的iloc索引器原生支持直接传入行索引序列(元组、列表、numpy数组均可),一行代码即可生成独立的新DataFrame:

# 加.copy()是为了生成完全独立的新对象,避免后续修改新表影响原表
new_df = df.iloc[row_ind].copy()

运行后得到的new_df结构如下:

Col1Col2Col3
0redblueyellow
2fivesixseven

如果需要重置新表的行索引为连续的0、1,可以加reset_index方法:

new_df = df.iloc[row_ind].copy().reset_index(drop=True)

基于现有循环逻辑的修改方案

原有代码存在两个问题:

  • 循环范围错误:用range(len(df))会出现超出row_ind长度的索引越界问题
  • 没有存储每次取出的行,仅保留了最后一次的取值结果
    修改后的循环代码如下:
import pandas as pd

# 初始化空列表存储每一行数据
row_collection = []
for idx in row_ind:
    current_row = df.iloc[idx]
    row_collection.append(current_row)

# 转换为DataFrame,如需保留原索引可以去掉reset_index部分
new_df = pd.DataFrame(row_collection).reset_index(drop=True)

内容的提问来源于stack exchange,提问作者user16470918

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:51:03