如何同时选择多个列(包含和排除)?

时间:2019-11-24 10:52:55

标签: python pandas

我正在处理一个有246列的数据框。具体来说,我想对第1、2、4、5、6列进行切片,然后还选择82至94列,后者包含在内,所有这些都可以在一个命令中同时进行。我已经尝试过.iloc.ix,但是它们返回语法错误。

new_df = df.iloc[:, [1, 2 ,4, 5, 6, 82:94]]

new_df = df.iloc[:, [1, 2, 4, 5, 6, 82:94]]
  File "<ipython-input-6-012945e7610d>", line 1
    new_df = df.iloc[:, [1, 2, 4, 5, 6, 82:94]]
                                          ^
SyntaxError: invalid syntax

.ix也返回相同的内容。除了指定互斥列索引之外,还有其他方法可以做到这一点吗?

3 个答案:

答案 0 :(得分:1)

恐怕您不能像这样混合使用索引和切片。一个简单的解决方法是使用range

new_df = df.iloc[:, [1, 2 ,4, 5, 6, *range(82,94)]]

答案 1 :(得分:1)

new_df = df.iloc[:, [1, 2, 4, 5, 6, list(range(82,94))]]

答案 2 :(得分:1)

要一起执行选择和切片操作,可以使用numpy.r_,它有助于沿轴连接n个数组切片。

new_df = df.iloc[:, numpy.r_[1, 2, 4, 5, 6, 82:94]]