2017-08-02 5 views
3

をのdictするシリーズを取得する方法は、今、私はこのシリーズを持っている:パンダ -

us 2 
br 1 
be 3 
dtype: int64 

ので、どのようにして一覧表示することができます取得します。次のように:

[ { "country": "us", "value": 2}, 
    { "country": "br", "value": 1}, 
    { "country": "be", "value": 3} 
] 

感謝

+0

技術的には、どのように辞書のリストにシリーズを取得します。 – Alexander

答えて

4

は最初DataFrameを作成し、使用DataFrame.to_dict

print (s.rename_axis('country').reset_index(name='value').to_dict('records')) 
[{'value': 2, 'country': 'us'}, {'value': 1, 'country': 'br'}, {'value': 3, 'country': 'be'}] 

DataFrameコンストラクタによって:

print (pd.DataFrame({'country':s.index, 'value':s.values}).to_dict('records')) 
[{'value': 2, 'country': 'us'}, {'value': 1, 'country': 'br'}, {'value': 3, 'country': 'be'}] 

list comprehensionと別の解決策:

piRSquaredから
d = [dict(country=x[0], value=x[1]) for x in s.items()] 
print (d) 
[{'value': 2, 'country': 'us'}, {'value': 1, 'country': 'br'}, {'value': 3, 'country': 'be'}] 

同様のソリューションは、Series.itemsで答えを削除:

d = [dict(country=k, value=v) for k, v in s.items()] 
+1

あなたは理解に 'to_dict'を使う必要はありません。辞書コンテキストで呼び出されると、シリーズは辞書のように動作します。 – piRSquared

+0

@xingyuanjiang - 喜んで助けることができます!私の答えが役に立ったら、[accept](http://meta.stackexchange.com/a/5235/295067)を忘れないでください。答えの横にあるチェックマーク( '✓')をクリックしてグレー表示にします記入してください。ありがとう。 – jezrael