Encontrando a borda máxima ponderada em um gráfico networkx em python

Eu quero encontrar ‘n’ arestas ponderadas máximas em um gráfico networkx. Como pode ser alcançado? Eu construí um gráfico da seguinte forma:

g_test = nx.from_pandas_edgelist(new_df, 'number', 'contactNumber', edge_attr='callDuration') 

Agora, eu quero encontrar top ‘n’ pesos de borda, ou seja, top ‘n’ callDurations. Eu também quero analisar este gráfico para encontrar tendências dele. Por favor me ajude como isso pode ser alcançado.

Se o seu gráfico é armazenado como g, você pode acessar suas bordas, incluindo seus atributos usando:

 g.edges(data=True) 

Isso retorna uma lista de tuplas. As duas primeiras inputs são os nós, e a terceira input é um dictionary dos atributos, com esta aparência:

 [(a,b,{"callDuration":10}),(a,c,{"callDuration":7})] 

Você pode classificar essa lista com base no atributo callDuration assim:

 sorted(g.edges(data=True),key= lambda x: x[2]['callDuration'],reverse=True) 

Note que usamos reverse para ver as maiores bordas callDuration primeiro.

Eu tenho medo que sua segunda pergunta seja muito ampla – você pode fazer muitas coisas com redes! Dê uma olhada em alguns tutoriais como este: https://programminghistorian.org/en/lessons/exploring-and-analyzing-network-data-with-python

Vamos tentar:

 max(dict(g_test.edges).items(), key=lambda x: x[1]['callduration']) 

Para encontrar o limite máximo de peso nessa rede de charts.

Intereting Posts