创建具有不相等值列表的熊猫数据框

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

【讨论】:

以上是关于创建具有不相等值列表的熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

在窗口函数中计算具有相等值的行

如何找到具有相等值的行?

数据库密态等值查询概述及操作

在 WPF 中使用 D3 创建等值线图

快速排序中相等值的比较

[原创.数据可视化系列之四]跨平台,多格式的等值线和等值面的生成