[英]Easiest way to generate dataframe out of dict and list
我有一个字典和一个列表:
d1 = {"k1": [1,2,3], "k2": [4,5,6], "k3": [3,2,1]}
l1 = ["label1", "label2", "label1"]
我想把它组合成一个 dataframe。 l1
中的每个元素对应d1
中的一个键
所需的 output(熊猫数据框):
key value label
0 k1 1 label1
1 k1 2 label1
2 k1 3 label1
3 k2 4 label2
4 k2 5 label2
5 k2 6 label2
6 k3 3 label1
7 k3 2 label1
8 k3 1 label1
到达那里最简单和最pythonic的方式是什么?
我们可以使用DataFrame.melt
和Series.map
智能使用zipping
列表和字典键来实现这一点:
from collections import OrderedDict
df = pd.DataFrame(d1).melt(var_name='key')
df['label'] = df['key'].map(OrderedDict(zip(d1.keys(), l1)))
key value label
0 k1 1 label1
1 k1 2 label1
2 k1 3 label1
3 k2 4 label2
4 k2 5 label2
5 k2 6 label2
6 k3 3 label1
7 k3 2 label1
8 k3 1 label1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.