특정 데이터 세트에서 팬더 데이터 프레임 객체를 얻었고이 df의 열 사이의 상관 관계를 계산했습니다.대칭 가중치 행렬을 순환하지 않고 무 방향성 가중 그래프로 변환 할 수있는 방법이 있습니까?
다음 단계는이 상관 행렬에서 가중치 그래프로 이동하는 것입니다. 여기서 가중치는이 행렬에서 가져옵니다.
나는 약 100 개의 데이터 세트가 있으므로,이 목적을 위해 루핑을 사용하지 않는 것이 좋습니다 (또는 현명한 방법으로 수행하십시오).
"stack()"명령의 주된 문제점은 그래프가 방향이 지정되고 [(x, y) : weight0] 및 [(y, x) : weight0] 가장자리를 모두 포함한다는 것입니다. 그 복제본을 없애고 싶습니다. 여기 내 코드는 지금까지 있습니다 :
import pandas as pd
import numpy as np
import networkx as nx
df1 = df1.corr()
links = df1.stack().reset_index()
links.columns = ['var1', 'var2','value']
links = links.loc[(links['var1'] != links['var2'])]
G = nx.from_pandas_dataframe(links, 'var1', 'var2', 'value')
'명령과 함께 가장 큰 문제 "스택()"이다 : 현재 위치에서 np.fill_diagonal 작품 것을주의 그래프 위의 두 줄 사이에 다음 코드를 삽입하기 전에 대각선 0을 만들고 싶어 그래프가된다. [(x, y) : weight0] 및 [(y, x) : weight0]' 그래프가 흐트러진 이유가 무엇인지 생각합니다. '[((x, y) : valueA]'와'[(y, x) : valueB]'가 다르다면 x에서 y로 x에서 x로 갈 때 비용이 달라진다는 것을 의미합니다. 그 weight0 값을 가진 하나의 링크로 볼 수 있습니다. 이것은 무향이고 가중치가있는 그래프입니다. – alseether
더 중점도 측정을 계산할 계획입니다.이 중복 정보는 계산 시간을 상당히 증가시킬 것이므로 이 "중복"을 제거하십시오. –