我正在处理一个有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
也返回相同的内容。除了指定互斥列索引之外,还有其他方法可以做到这一点吗?
答案 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]]