python - 如何从不等长列表的字典中创建虚拟数据框?

标签 python pandas dummy-variable

我有一个字典,其中每个键都是一个行索引,每个值都是一个虚拟值列表。例如:

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

你也可以使用 stackstr.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/

相关文章:

python - 从特定日历 Google API Python 获取事件

python - 使用 SciPy 规则网格在 Python 中进行快速二维插值以进行分散/不规则评估

python - 如何从 corr() 函数输出中删除 NaN 值

python - 在 Numba 中获取类似结构化数组/数据帧的结构的最佳方法是什么?

r - dummyVars 预测真的返回数据帧吗?

r - 在 R 中创建虚拟变量的简单方法

python - Wunderground api 搜索栏

python - 如何在不使用 .split 和 .strip 函数的情况下编写我自己的拆分函数?

python - 如何使用 Python 将查询导出到 Excel?

python - 如何连接两个 pandas 数据框中具有不同索引和非唯一键的列