You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何选择DataFrame指定行与列并生成新DataFrame?

pandas按位置选取指定行列生成新DataFrame实现方法

核心用pandas的位置索引器iloc完成操作即可,注意pandas的位置计数规则是从0开始,不要数错序号:

  • 需要选取的第2列、第4列,对应位置索引为1、3
  • 需要选取的第1行、第6行,对应位置索引为0、5

完整代码示例

首先构造测试用的4列6行原始DataFrame方便复现:

import pandas as pd
import numpy as np

# 构造6行4列的测试DataFrame
raw_df = pd.DataFrame(
    np.arange(24).reshape(6, 4),
    columns=["列1", "列2", "列3", "列4"]
)

核心选取逻辑,iloc的第一个参数传入要选的行位置列表,第二个参数传入要选的列位置列表,返回结果就是全新的DataFrame:

# 选中对应行列生成新DataFrame
new_df = raw_df.iloc[[0, 5], [1, 3]]

注意事项

  • 不要用先选列再选行的链式索引写法(比如raw_df[[1,3]].iloc[[0,5]]),这种写法容易触发SettingWithCopyWarning,后续修改新表时可能出现数据不同步的问题,一次性通过iloc指定行列是官方推荐的稳妥写法。
  • 如果你要选取的是自定义标签名的行、列(不是按自然序号位置选),把iloc替换为loc,方括号内直接传入对应的行标签、列标签组成的列表即可,不需要做0起始的位置换算。

举个例子:如果你的行索引是日期、列名是具体指标名,选2024-01-01、2024-01-06两行的销售额、利润率两列,写法就是df.loc[["2024-01-01", "2024-01-06"], ["销售额", "利润率"]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:06:56