创建具有不相等值列表的熊猫数据框
Posted
技术标签:
【中文标题】创建具有不相等值列表的熊猫数据框【英文标题】:Create pandas dataframe with unequal list of values 【发布时间】:2019-09-29 17:29:11 【问题描述】:除了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
使用集合而不是列表有问题吗?
【问题讨论】:
【参考方案1】:使用melt
的另一种方式
pd.DataFrame(d.values(), d.keys()).T.melt().dropna()
【讨论】:
有趣...不知道融化。谢谢 :) @KennethRivadeneiraGuadamud,您可以考虑支持对您有帮助的答案。 :) 我需要更多细节;] 我认为它需要列表。 pd.DataFrame(list(d.values()), list(d.keys())).T.melt().dropna() 我更喜欢这个解决方案。 :) 啊。我知道了。很好的答案。【参考方案2】:如果你不介意手动解包,可以通过
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
【讨论】:
【参考方案3】:我正在使用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
【讨论】:
以上是关于创建具有不相等值列表的熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章