2017-05-26 134 views
0

下面我列出了代碼。我有數據框a,其中有很多列,我試圖從數據框a中查詢'國家'兩列'等級'的子集到我的新數據框中。爲什麼這個代碼不起作用?數據幀子集

df= a['Rank', 'Country'] 

如果我使用

df=a['Rank'] 

它工作正常。

+0

看一看他們的文檔:HTTP://pandas.pydata。 org/pandas-docs/stable/indexing.html#basics 這應該回答你的問題。 – holzkohlengrill

回答

3

需要另一個[]

df= a[['Rank', 'Country']] 

的是一樣的,但它是不太打字:

df = a.loc[:, ['Rank', 'Country']] 

樣品:

a = pd.DataFrame({'Rank':[1,2,3], 
        'Country':[4,5,6], 
        'C':[7,8,9]}) 

print (a) 
    C Country Rank 
0 7  4  1 
1 8  5  2 
2 9  6  3 

df = a.loc[:, ['Rank', 'Country']] 
print (df) 
    Rank Country 
0  1  4 
1  2  5 
2  3  6 

df = a[['Rank', 'Country']] 
print (df) 
    Rank Country 
0  1  4 
1  2  5 
2  3  6 

您還可以檢查docs

您可以通過列的列表,以[]的順序選擇列。

也爲選擇列一列DataFrame使用[]太:

df = a[['Rank']] 
print (df) 
    Rank 
0  1 
1  2 
2  3 

Series

s = a['Rank'] 
print (s) 
0 1 
1 2 
2 3 
Name: Rank, dtype: int64 
+0

謝謝你的幫助! –

+0

很高興能幫到你!如果我的回答很有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067)它。謝謝。 – jezrael