我是一名正在学习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复制方法?
答案 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
请注意,如果您想稍后使用它,则应将其分配给一个变量。