2016-06-24 115 views
1

我們有以下的數據幀DF,熊貓據幀與價值字典作爲一個列表

0 1 2 3 
0 'a' 'b' 1 2 
1 'a' 'c' 2 4 

我想作爲

{('a', 'b'): [1, 2], ('a', 'c'): [2, 4]} 

如何使用.to_dict()來生成輸出輸出?

我試圖

df.set_index([0,1])[[2,3]].to_dict() 

並得到結果

{2: {('a', 'b'): 1, ('a', 'c'): 2}, 3: {('a', 'b'): 2, ('a', 'c'): 4}} 
+0

請發表您已經嘗試了什麼至今 –

回答

3

設定指標後,將轉置,然後使用to_dictorient='list'

df.set_index([0,1]).T.to_dict(orient='list') 

輸出結果:

{('a', 'b'): [1, 2], ('a', 'c'): [2, 4]} 
+0

這個答案比我的好。 – piRSquared

1

嘗試:

{k: v.tolist() for k, v in df.set_index([0, 1]).iterrows()} 

{('a', 'b'): [1, 2], ('a', 'c'): [2, 4]}