Pandas 使用切片和整数索引选择列

Posted

技术标签:

【中文标题】Pandas 使用切片和整数索引选择列【英文标题】:Pandas select columns using slicing and integer index 【发布时间】:2017-01-13 12:26:38 【问题描述】:

我正在尝试选择第 2 列和第 4 列:(第 4 列直到最后):

df3.iloc[:, [2, 4:]]

文件“”,第 1 行 df3.iloc[:, [2, 4:]] ___________^ SyntaxError: 无效语法

我显然收到一条错误消息。 col 4 后面有很多列,所以写这样的东西感觉不对:[2, 4, 5, 6, 7, ...]

还有其他快速的方法吗?

【问题讨论】:

【参考方案1】:

您可以将rangeshape 一起使用:

df3 = pd.DataFrame('A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3])

print (df3)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

cols = ([2] + list(range(4,df3.shape[1])))
print (cols)
[2, 4, 5]

print (df3.iloc[:,cols])
   C  E  F
0  7  5  7
1  8  3  4
2  9  6  3

numpy.r_ 的另一个解决方案:

cols1 = np.r_[2, np.arange(4,df3.shape[1])]
print (cols1)
[2 4 5]

print (df3.iloc[:,cols1])
   C  E  F
0  7  5  7
1  8  3  4
2  9  6  3

【讨论】:

以上是关于Pandas 使用切片和整数索引选择列的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:更改通过列中的布尔索引选择的值而不会收到警告

python--pandas切片

pandas.DataFrame 索引方法区别

pandas timeseries DF 切片和选择

如何在不使用索引的情况下选择列

Pandas 数据结构之 DataFrame使用教程