我有一个字典,其中每个键都是一个行索引,每个值都是一个虚拟值列表。例如:
my_dict = {'row1': ['a', 'b'], 'row2': ['a'], 'row3': ['b', 'c']}
我可以用上面的方法高效地创建一个虚拟数据框吗?
>>> df
a b c
row1 True True False
row2 True False False
row3 False True True
最佳答案
您可以使用pd.get_dummies
:
u = pd.DataFrame.from_dict(my_dict, orient='index')
pd.get_dummies(u, prefix='', prefix_sep='').max(level=0, axis=1).astype(bool)
a b c
row1 True True False
row2 True False False
row3 False True True
你也可以使用 stack
和 str.get_dummies
这很简洁,但这样会稍微慢一些。
u.stack().str.get_dummies().max(level=0).astype(bool)
a b c
row1 True True False
row2 True False False
row3 False True True
关于python - 如何从不等长列表的字典中创建虚拟数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55347862/