如何在 Pandas 中选择某些列索引(连续和单独)

Posted

技术标签:

【中文标题】如何在 Pandas 中选择某些列索引(连续和单独)【英文标题】:How do select certain column indexes (continuous and individual) in Pandas 【发布时间】:2020-06-13 02:00:00 【问题描述】:

我来自 R 背景,在对 pandas 中的某些列集进行切片时遇到问题。

假设我正在尝试获取索引为 0、3、5 到 20 和 25 的列。我认为访问我想要的方法是:

df.iloc[:, [0,3,5:20,25]]

但是5:20 代码行中的: 存在语法错误。有没有一种方法可以在不输入每个数字的情况下生成从 5 到 20 的数字序列?

【问题讨论】:

嗨,这不是有效的,但它有效。 result = pd.concat([df.iloc[[0,3]], df.iloc[5:20], df.iloc[[25]]], axis=0) 请根据link 提供输入、输出和所需的输出示例,以了解如何发布重要问题。帮助我们帮助您。 【参考方案1】:

您可以先构建列表,然后使用.iloc[]

my_list = [0, 3]
my_list.extend(range(5, 21))
my_list.extend([25])
df.iloc[my_list]

【讨论】:

【参考方案2】:

你可以使用numpy.r_[...]:

df.iloc[:, np.r_[0,3,5:21,25]]

请注意,切片为 5:21,因为 numpy 使用 Python 的切片约定(不包括上限),而 pandas 包括下限和上限。

【讨论】:

以上是关于如何在 Pandas 中选择某些列索引(连续和单独)的主要内容,如果未能解决你的问题,请参考以下文章

用于搜索的 Pandas 列索引?

pandas将某一行设置为列索引(python)

Python Pandas:从多级列索引中删除一列?

有没有办法在行和列索引上合并熊猫数据框?

pandas使用read_csv函数读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用方括号[]基于最外层列索引名称索引列数据

在 python pandas 中将级别附加到列索引