2017-10-05 80 views
0

我是一位R用戶,他目前正在學習Python,我正在嘗試複製一種將R中使用的列方法複製到Python中的方法。選擇多列R vs python pandas

在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) 

是否有來自R複製方法的更有效的方法蟒蛇?

+1

'DF .iloc [:,[1] + range(3,10)]' – DJK

回答

4

可以使用np.r_接受混合切片表示法和標量指數和將它們連接起來作爲1-d數組:

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

謝謝你,你是一位救世主。 – user7438322

+0

你喜歡更多的Python或R? – piRSquared

+0

@piRSquared棘手的問題。還沒有弄清楚。 :) – Psidom