从具有任意长度值的字典创建数据帧(使用循环键作为列值)

2024-04-26 00:57:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力将字典转换为数据帧

已经有很多答案显示了如何在像https://stackoverflow.com/a/52819186/6912069这样的“宽格式”中实现它,但是我想做一些不同的事情,最好不要使用循环

考虑下面的例子:

我有一本这样的字典

d_test = {'A': [1, 2], 'B': [3]}

我想得到一个数据帧,比如

index id    values
0     A     1
1     A     2
2     B     3

索引可以是正常的连续整数列。通过循环,我的意思是将'A'=[1, 2]变成两行,在id列中有A,在values列中有值。这样,我将拥有字典项的“长格式”数据框架

这似乎是一件非常基本的事情,但我想知道是否有一种优雅的python方法来实现这一点。非常感谢你的帮助


Tags: 数据答案httpstestcomidindex字典
1条回答
网友
1楼 · 发布于 2024-04-26 00:57:09

我将创建两个列表。一个来自键,另一个来自字典的值。定义列表后,可以将列表传递到数据帧中

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)

相关问题 更多 >