Python 从具有任意长度值的字典创建数据帧(使用循环键作为列值)
我正在努力将字典转换为数据帧 已经有很多答案显示了如何在“宽格式”中执行,但是我想做一些不同的事情,最好不要使用循环 考虑以下示例: 我有一本这样的字典Python 从具有任意长度值的字典创建数据帧(使用循环键作为列值),python,dataframe,dictionary,Python,Dataframe,Dictionary,我正在努力将字典转换为数据帧 已经有很多答案显示了如何在“宽格式”中执行,但是我想做一些不同的事情,最好不要使用循环 考虑以下示例: 我有一本这样的字典 d_test = {'A': [1, 2], 'B': [3]} 我想得到一个数据帧,比如 index id values 0 A 1 1 A 2 2 B 3 索引可以是正常的连续整数列。通过循环,我的意思是将'A'=[1,2]分成两行,id列中有A,值列中有值。这样,我将拥有字典项的“
d_test = {'A': [1, 2], 'B': [3]}
我想得到一个数据帧,比如
index id values
0 A 1
1 A 2
2 B 3
索引可以是正常的连续整数列。通过循环,我的意思是将'A'=[1,2]
分成两行,id列中有A
,值列中有值。这样,我将拥有字典项的“长格式”数据框架
这似乎是一件非常基本的事情,但我想知道是否有一种优雅的python方法来实现这一点。非常感谢您的帮助。我将创建两个列表。一个来自键,另一个来自字典的值。定义列表后,可以将列表传递到数据帧中
import pandas as pd
dic = {'A': [1, 2], 'B': [3], 'D': [4, 5, 6]}
keys = []
values = []
for key, value in dic.items():
for v in value:
keys.append(key)
values.append(v)
df = pd.DataFrame(
{'id': keys,
'values': values,
})
print(df)