2016-05-11 16 views
1

は、私がデータフレームを持って言う:値の後にPython変数の名前を付けるにはどうしたらいいですか?

 X Y 
1 'a' ('good','pretty') 
2 'b' ('bad','ugly') 
3 'z' ('ok','soso') 
私は、3つの異なるリストを作成する必要が

:aは良いとはかなり異なる行であり、 bが違う行などで悪くて醜いです...

これらのリスト変数を作成するには、列Xの値を自動的に取ってこれを行うにはどうしたらいいですか?

ここ

はコードです:

list1 = ['good, pretty','a'] 
list2 = ['bad, ugly','b'] 
list3 = ['ok, soso','c'] 
test = pd.DataFrame([list1, list2, list3], columns=['desc', 'item']) 
test 

とデータフレームは、次のようになります。

  desc item 
0 good, pretty a 
1  bad, ugly b 
2  ok, soso c 

私が見えるように、最終的なリストを必要とする:

{'a':  ('good','pretty'), 
    'b':  ('bad','ugly'), 
    'c':  ('ok','soso')} 
+2

[辞書](http://www.dotnetperls.com/dictionary-python)を使用してください。 – user2864740

+0

コードを提供できる方が良いでしょう。 – Guoliang

+0

データを取得するコードを更新しました。 – CWeeks

答えて

3

は、上の辞書の理解を使用してくださいグループバイ。

>>> {idx: group['desc'].tolist() 
    for idx, group in test.groupby('item')} 

{'a': ['good, pretty'], 'b': ['bad, ugly'], 'c': ['ok, soso']} 
+0

Thx Alexander、これは私のパンダのデータフレームを辞書に変換するのに役立ちます。しかし、辞書をキーの後ろにリストされたリストにさらに分割する必要があります。たとえば、var_a、var_b、var_cなどがあります。出来ますか? – CWeeks

+0

他の既存の変数やメソッドを上書きする可能性があるので、お勧めしません。変数を辞書に保存し、そのようにアクセスするのが一般的です。 – Alexander

+0

私は参照してください。私が今までに試したことが、今のところ最良の選択肢であることに同意する。 – CWeeks

関連する問題