使用不相等的值列表创建熊猫数据框

时间:2019-05-12 15:30:14

标签: python python-3.x pandas dictionary

除了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

使用集合而不是列表有问题吗?

3 个答案:

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