从 python 中的字典创建 Dataframe

发布于 2025-01-12 14:59:44 字数 547 浏览 0 评论 0原文

我对Python非常菜鸟。我的字典:

my_dict:{0:['12531','1253145','251231','151315','51555'],
         1:['1551','12554','454545']}

我需要将其转换为 DataFrame:

ID      Cluster
12531   0
1253145 0
251231  0
151315  0
51555   0
1551    1
12554   1
454545  1

我尝试使用,

pd.DataFrame.from_dict({(i,j):clusters[i][j]
                        for i in clusters.keys()
                        for j in clusters[i].keys()}
                       ,columns=['Cluster','ID'])

但这不是我想要的。

I'm very noob in python. My dict:

my_dict:{0:['12531','1253145','251231','151315','51555'],
         1:['1551','12554','454545']}

I need to convert this as a DataFrame:

ID      Cluster
12531   0
1253145 0
251231  0
151315  0
51555   0
1551    1
12554   1
454545  1

I tried using

pd.DataFrame.from_dict({(i,j):clusters[i][j]
                        for i in clusters.keys()
                        for j in clusters[i].keys()}
                       ,columns=['Cluster','ID'])

but it is not what I want.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

土豪我们做朋友吧 2025-01-19 14:59:45

您可以生成一个系列并分解

(pd.Series(my_dict)
   .explode()
   .rename_axis('Cluster')
   .reset_index(name='ID')
 )

输出:

   Cluster       ID
0        0    12531
1        0  1253145
2        0   251231
3        0   151315
4        0    51555
5        1     1551
6        1    12554
7        1   454545

You can generate a Series and explode:

(pd.Series(my_dict)
   .explode()
   .rename_axis('Cluster')
   .reset_index(name='ID')
 )

Output:

   Cluster       ID
0        0    12531
1        0  1253145
2        0   251231
3        0   151315
4        0    51555
5        1     1551
6        1    12554
7        1   454545
狼亦尘 2025-01-19 14:59:45

您可以修改 my_dict 以创建字典列表并将其传递给 DataFrame 构造函数:

out = pd.DataFrame([{'ID': v, 'Cluster': 1 - k} 
                    for k, lst in my_dict.items() for v in lst])

输出:

        ID  Cluster
0    12531        1
1  1253145        1
2   251231        1
3   151315        1
4    51555        1
5     1551        0
6    12554        0
7   454545        0

You could modify my_dict to create a list of dictionaries and pass it to the DataFrame constructor:

out = pd.DataFrame([{'ID': v, 'Cluster': 1 - k} 
                    for k, lst in my_dict.items() for v in lst])

Output:

        ID  Cluster
0    12531        1
1  1253145        1
2   251231        1
3   151315        1
4    51555        1
5     1551        0
6    12554        0
7   454545        0
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文