2017-05-26 1 views
0

以下にコードがリストされています。私は多くの列を持つデータフレームを持っています。私は、2つの列のサブセットを 'Rank' & '国'というデータフレームから新しいデータフレームにクエリしようとしています。このコードはなぜ機能しないのですか?データフレームサブセット

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

私は

df=a['Rank'] 

を使用している場合はそれが正常に動作します。

+0

そのドキュメントを見てください。 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をチェックすることができます。

あなたはその順序で列を選択する[]に列のリストを渡すことができます。

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

しかしSeries用:あまりにも1列DataFrame使用[]に選択した列のまた

ます。http://pandas.pydata

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