2016-12-07 39 views
2

我想借一本字典,看起來像這樣:創建從字典和發生變異列的熊貓數據幀

pre_df={'item1':['a','b','c'],'item2':['c','d'], 'item3':['a', 'c', 'd', 'e'], 'item4':['e']} 

,並把它變成一個熊貓數據幀是這樣的:

index A  B  C  D  E 
item1 True True True False False 
item2 False False True True False 
item3 True False True True True 
item4 False False False False True 

我VE從計算器嘗試這樣:

pd.DataFrame(dict([(k,pd.Series(v)) for k,v in pre_df.items()])) 

但是這給了我一個不正確的數據幀:

item1 item2 item3 item4 
0  a  c  a  e 
1  b  d  c NaN 
2  c NaN  d NaN 
3 NaN NaN  e NaN 

使用pd.melt()似乎不是正確的方法。

回答

1

您可以遍歷字典並將每個值轉換爲以原始列表作爲索引並將值轉換爲Series對象,然後調用DataFrame.from_dict()方法。這給出了所需輸出的轉置版本。轉置的結果,並填寫南帶着False給你需要的東西:

pd.DataFrame.from_dict({k: pd.Series(True, v) for k, v in pre_df.items()}).T.fillna(False) 

enter image description here