除了DataFrame.from_dict
之外,是否还有一个内置函数能够从具有不等值列表的字典中创建数据框?
我正在尝试从以下字典创建数据框:
d = {'g': {1, 2, 3}, 'h': {4, 5}}
所以输出应如下所示:
value class
0 1 g
1 2 g
2 3 g
3 4 h
4 5 h
使用集合而不是列表有问题吗?
答案 0 :(得分:5)
使用melt
pd.DataFrame(d.values(), d.keys()).T.melt().dropna()
答案 1 :(得分:4)
如果您不介意手动解包,则可以通过
实现In [9]: pd.DataFrame([(x, k) for k, v in d.items() for x in v], columns=['value', 'class'])
Out[9]:
value class
0 1 g
1 2 g
2 3 g
3 4 h
4 5 h
答案 2 :(得分:0)
我正在使用unnesting
unnesting(pd.Series(d).apply(list).to_frame('name'),['name']).reset_index()
index name
0 g 1
1 g 2
2 g 3
3 h 4
4 h 5