Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python在图中查找集群成员_Python_Pandas_Networkx - Fatal编程技术网

python在图中查找集群成员

python在图中查找集群成员,python,pandas,networkx,Python,Pandas,Networkx,在python中,我试图解决与以前在R中相同的问题: import pandas as pd, numpy as np df = pd.DataFrame({"id1": [1,1,2,2,3,3,4,4,5,5,6,6,np.NaN,np.NaN], "id2": ['a',np.NaN,'a','c','c','d','x',np.NaN,'y','z','x','z',np.NaN,np.NaN],

在python中,我试图解决与以前在R中相同的问题:

import pandas as pd, numpy as np
df = pd.DataFrame({"id1": [1,1,2,2,3,3,4,4,5,5,6,6,np.NaN,np.NaN],
                   "id2": ['a',np.NaN,'a','c','c','d','x',np.NaN,'y','z','x','z',np.NaN,np.NaN],
                   "id3": [1,1,1,1,1,1,2,2,2,2,2,2,np.NaN,np.NaN]})
我希望python计算列
id3
,即分配网络集群成员资格(理想情况下忽略NAs)

在R中:


g我们可以生成一个无向
networkx
图,将源和目标设置为
id1
id2
,然后
枚举图中连接的组件以创建映射字典,并在
id1
列上映射该字典

import networkx as nx

G = nx.from_pandas_edgelist(df.dropna(), 'id1', 'id2')
df['id3'] = df['id1'].map({c: i for i, cc in enumerate(
                           nx.connected_components(G), 1) for c in cc})

import networkx as nx

G = nx.from_pandas_edgelist(df.dropna(), 'id1', 'id2')
df['id3'] = df['id1'].map({c: i for i, cc in enumerate(
                           nx.connected_components(G), 1) for c in cc})
    id1  id2  id3
0   1.0    a  1.0
1   1.0  NaN  1.0
2   2.0    a  1.0
3   2.0    c  1.0
4   3.0    c  1.0
5   3.0    d  1.0
6   4.0    x  2.0
7   4.0  NaN  2.0
8   5.0    y  2.0
9   5.0    z  2.0
10  6.0    x  2.0
11  6.0    z  2.0
12  NaN  NaN  NaN
13  NaN  NaN  NaN