Матрица смежности не является квадратной ошибкой из квадратного кадра данных с networkxPython

Программы на Python
Ответить
Anonymous
 Матрица смежности не является квадратной ошибкой из квадратного кадра данных с networkx

Сообщение Anonymous »

У меня есть код, целью которого является создание графика из матрицы смежности из таблицы, соотносящей работников с их менеджером. Источником является таблица с двумя столбцами (Работник, Менеджер). Он по-прежнему отлично работает с небольшим набором ложных данных, но неожиданно дает сбой с реальными данными:

Код: Выделить всё

import pandas as pd
import networkx as nx

# Read input
df = pd.read_csv("org.csv")

# Create the input adjacency matrix
am = pd.DataFrame(0, columns=df["Worker"], index=df["Worker"])
# This way, it is impossible that the dataframe is not square,
# or that index and columns don't match

# Fill the matrix
for ix, row in df.iterrows():
am.at[row["manager"], row["Worker"]] = 1

# At this point, am.shape returns a square dataframe (2825,2825)
# Generate the graph
G = nx.from_pandas_adjacency(am, create_using=nx.DiGraph)
Это возвращает: NetworkXError: Матрица смежности не квадратная: nx,ny=(2825, 2829)
И действительно, размеры, указанные в ошибке, не такие же, как во входном кадре данных am.
Есть ли у кого-нибудь представление о том, что происходит в from_pandas_adjacency, что может привести к этому несоответствие?

Подробнее здесь: https://stackoverflow.com/questions/794 ... h-networkx
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»