2016-12-02 94 views
1

我試圖創建一個字典從數據幀(DF)的兩列Python字典的理解與熊貓

mydict={x :y for x in df['Names'] for y in df['Births']} 

但所有的值是(在列的最後一個值)一樣!

{'Bob': 973, 'Jessica': 973, 'John': 973, 'Mary': 973, 'Mel': 973} 

我檢查了列,它有許多其他值,我做錯了什麼?

+0

檢查'DF [「名」,「出生」 ]。set_index( '姓名')。to_dict()[ '誕生']'。 – Psidom

+1

由於字典鍵只能存儲一個值,並且您正在爲每個鍵設置每個鍵,所以它會存儲它所設置的最後一個鍵。 –

+0

試試'dict(zip(dff ['Names'],dff ['Births']))'。 – Abdou

回答

1

我覺得阿卜杜擊中頭部釘與dict(zip(dff['Names'], dff['Births'])),但如果你想用字典的理解來做到這一點,你可以這樣做:

In [1]: import pandas as pd 

    In [2]: df = pd.DataFrame(
     ...: [{'Births': 971, 'Names': 'Bob'}, 
     ...: {'Births': 972, 'Names': 'Jessica'}, 
     ...: {'Births': 973, 'Names': 'John'}, 
     ...: {'Births': 974, 'Names': 'Mary'}, 
     ...: {'Births': 975, 'Names': 'Mel'}]) 

    In [3]: {d['Names']: d['Births'] for d in df.to_dict(orient='records')} 
    Out[3]: {'Bob': 971, 'Jessica': 972, 'John': 973, 'Mary': 974, 'Mel': 975} 
+0

非常感謝! – AboJoe