2017-08-02 36 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 - 很高興能幫到你!如果我的回答有幫助,請不要忘記[接受](http://meta.stackexchange.com/a/5235/295067) - 點擊答案旁邊的複選標記('✓')將其從灰色出來填補。謝謝。 – jezrael