在Pandas中按条件选择列的范围

问题描述 投票:1回答:1

我想做这样的事情。选择一个或n个列的范围和另一个列

df_premises = df.iloc[:, 0:8 and 11] 相当于 df_premises = df.iloc[:, [0,1,2,3,,8,11]]

我已经试过了。

  1. df_premises = df.iloc[:, 0:8, 11] - 导致错误
  2. df_premises = df.iloc[:, 0:8 + 11] - 返回0:18
python python-3.x pandas
1个回答
3
投票

你可以使用。df.iloc[:, lambda x: x.index < 9 or x.index == 11]

更简单的方法是在之前定义一个列表,然后在里面使用列表。iloc.

例如:

my_range = range(9)
my_range.append(11)
df_premises = df.iloc[:, my_range]

如上所述: 大熊猫文件输入必须是以下之一。

  1. 一个整数,例如5。

  2. 一个整数列表或数组,例如 [4, 3, 0]。

  3. 一个包含ints的slice对象,例如1:7。

  4. 一个布尔数组。

  5. 一个有一个参数(调用Series或DataFrame)的可调用函数,并返回有效的输出用于索引。

您可以使用简单的切片,如 df.iloc[:3] 或类似 df.iloc[lambda x: x.index % 2 == 0].

所以具体到你问的内容,以下就可以了。

df.iloc[:, lambda x: x.index < 9 or x.index == 11]

© www.soinside.com 2019 - 2024. All rights reserved.