gpt4 book ai didi

python - 在 Pandas 数据框中分隔 'networks'

转载 作者:行者123 更新时间:2023-12-05 03:40:54 25 4
gpt4 key购买 nike

给定以下 df:

 first  second
0 a 3
1 b 5
2 a 2
3 e 9
4 c 2
5 d 7
6 d 8
7 c 5

我想将不同的“网络”分离到它们自己的数据帧中。所以例如a 转到 2,但 2 也链接到 c,c 也链接到 5,等等。这意味着它们形成了一个网络。

这意味着您最终应该得到以下三个数据框:

 first  second
0 a 3
1 b 5
2 a 2
3 c 5
4 c 2

first second
0 d 7
1 d 8

first second
0 e 9

有没有一种简单的方法可以做到这一点,有没有一种方法可以泛化到任意数量的列?

谢谢!

最佳答案

我们可以使用connected_componentsnetworkx 到 dataframe 的子集

import networkx as nx

G = nx.from_pandas_edgelist(df, 'first', 'second')
[df.query('first in @cc') for cc in nx.connected_components(G)]

[  first  second
0 a 3
1 b 5
2 a 2
4 c 2
7 c 5,
first second
3 e 9,
first second
5 d 7
6 d 8]

关于python - 在 Pandas 数据框中分隔 'networks',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67968179/

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