gpt4 book ai didi

python - 如何将字典转换为 pandas 数据框,其中键和值位于两个单独的列中?

转载 作者:行者123 更新时间:2023-12-02 01:47:44 25 4
gpt4 key购买 nike

我有一个这种格式的Python字典。

d = {1: {1, 2, 3},
2: {4, 5}}

我想将其转换为这种格式的 pandas 数据框。

Expected Output:
Source Target
1 1
1 2
1 3
2 4
2 5

我尝试使用列表理解来做到这一点

d = {1: {1, 2, 3}, 2: {4, 5}}

df=pd.DataFrame([[key,v] for key, value in d.items() for v in value], columns=["Source", "Target"])
print(df)

但是,有没有更好的方法呢?

最佳答案

您可以使用df.explode:

import pandas as pd

d = {
1: {1, 2, 3},
2: {4, 5}
}

df = pd.DataFrame(d.items(), columns=['Source', 'Target'])
df = df.explode('Target')

这给出

   Source Target
0 1 1
0 1 2
0 1 3
1 2 4
1 2 5

在这里,我们为每个目标创建具有多个值的数据框,然后爆炸,然后为目标中的每个值创建一个新行。

请注意,索引仍然反射(reflect)原始数据帧,因此我们可以使用:

df = df.reset_index(drop=True)

将其重置为

   Source Target
0 1 1
1 1 2
2 1 3
3 2 4
4 2 5

这结合起来给我们

df = df.explode('Target').reset_index(drop=True)

关于python - 如何将字典转换为 pandas 数据框,其中键和值位于两个单独的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70701120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com