2016-12-13 7 views
1

パンダのデータフレーム 'test_df'があります。私の目的は、それを辞書に変換することです。したがって、私はこれを実行します。pandasをキー値に使用される列を定義する辞書に変換します

id Name Gender Age 
0 1 'Peter' 'M'  32  
1 2 'Lara' 'F'  45 

そこで私はこれを実行します。

test_dict = test_df.set_index('id').T.to_dict() 

出力はこれです:

{1: {'Name': 'Peter', 'Gender': 'M', 'Age': 32}, 2: {'Name': 'Lara', 'Gender': 'F', 'Age': 45}} 

、私は唯一の '名前' と「性別を選びたいです'列を辞書のキーの値として使用します。上記のスクリプトを次のようにsthに変更しようとしています。

test_dict = test_df.set_index('id')['Name']['Gender'].T.to_dict() 

成功しません!

お願いします。

答えて

1

あなたが列[['Name','Gender']]subsetを使用し、非常に近かった。また

test_dict = test_df.set_index('id')[['Name','Gender']].T.to_dict() 
print (test_dict) 
{1: {'Name': 'Peter', 'Gender': 'M'}, 2: {'Name': 'Lara', 'Gender': 'F'}} 

Tは、使用パラメータorient='index'必要はありません。

test_dict = test_df.set_index('id')[['Name','Gender']].to_dict(orient='index') 
print (test_dict) 
{1: {'Name': 'Peter', 'Gender': 'M'}, 2: {'Name': 'Lara', 'Gender': 'F'}} 
+0

正解どうもありがとう! –

+0

ありがとうございます。私の答えが役に立ったら、[受諾](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。ありがとう。 – jezrael

関連する問題