如何在 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使用read_csv函数读取csv数据header参数指定作为列索引的行索引列表形成复合(多层)列索引使用方括号[]基于最外层列索引名称索引列数据