我想做这样的事情。选择一个或n个列的范围和另一个列
df_premises = df.iloc[:, 0:8 and 11]
相当于 df_premises = df.iloc[:, [0,1,2,3,,8,11]]
我已经试过了。
df_premises = df.iloc[:, 0:8, 11]
- 导致错误df_premises = df.iloc[:, 0:8 + 11]
- 返回0:18 你可以使用。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]
如上所述: 大熊猫文件输入必须是以下之一。
一个整数,例如5。
一个整数列表或数组,例如 [4, 3, 0]。
一个包含ints的slice对象,例如1:7。
一个布尔数组。
一个有一个参数(调用Series或DataFrame)的可调用函数,并返回有效的输出用于索引。
您可以使用简单的切片,如 df.iloc[:3]
或类似 df.iloc[lambda x: x.index % 2 == 0]
.
所以具体到你问的内容,以下就可以了。
df.iloc[:, lambda x: x.index < 9 or x.index == 11]