从dict和mutate列创建pandas数据帧

时间:2016-12-07 02:08:25

标签: python pandas dictionary dataframe

我想拿一本看起来像这样的字典:

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

并将其转换为像这样的pandas数据框:

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

我已经从stackoverflow尝试了这个:

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 个答案:

答案 0 :(得分:1)

您可以遍历字典并将每个值转换为Series对象,并将原始列表作为索引并将值转换为True,然后调用DataFrame.from_dict()方法。这给出了所需输出的转置版本。转置结果并用False填充NaN,得到你需要的东西:

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

enter image description here