2017-05-26 95 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