选择多列R与python pandas

时间:2017-10-05 01:29:11

标签: python r pandas multiple-columns

我是一名正在学习Python的R用户,我正在尝试复制一种选择R中使用的列到Python中的方法。

在R中,我可以像这样选择多个列:

df[,c(2,4:10)]

在Python中,我知道iloc是如何工作的,但是我无法在单个列号和连续的列号之间进行拆分。

这不起作用

df.iloc[:,[1,3:10]]

所以,我将不得不放弃第二列:

df.iloc[:,1:10].drop(df.iloc[:,1:10].columns[1] , axis=1)

在Python中有没有更有效的方法从R复制方法?

2 个答案:

答案 0 :(得分:4)

您可以使用接受混合切片表示法和标量索引的np.r_并将它们连接为一维数组:

import numpy as np
df.iloc[:,np.r_[1, 3:10]]
df = pd.DataFrame([[1,2,3,4,5,6]])

df

#   0   1   2   3   4   5
#0  1   2   3   4   5   6

df.iloc[:, np.r_[1, 3:6]]

#   1   3   4   5
#0  2   4   5   6

由于np.r_产生:

np.r_[1, 3:6]
# array([1, 3, 4, 5])

答案 1 :(得分:0)

假设一个人想要按名称选择 DataFrame 的多个列,考虑到 Dataframe df

df = pandas.DataFrame({'A' : ['X', 'Y'], 
                        'B' : 1, 
                        'C' : [2, 3]})

考虑到需要 A 列和 C 列,只需使用

df[['A', 'C']]
>>>   A  C
   0  X  2
   1  Y  3 

请注意,如果您想稍后使用它,则应将其分配给一个变量。