Networkx KeyError: «источник» с from_pandas_edgelist для ненаправленного списка краев

У меня есть список краев в фрейме данных pandas, который выглядит так:

    topic   neighbor
0   K       Kl
1   K       Pr
2   Kl      TS
3   Pr      Kl
4   Pr      Pr

Когда я превращаю это в график (используя networkx как nx) с помощью G = nx.from_pandas_edgelist(df), это дает мне KeyError: 'source'.

Это работает, когда я указываю источник и цель G = nx.from_pandas_edgelist(df, "topic", "neighbor"), но это неориентированный график, поэтому мне не нужны источник и цель.

Это то, как это должно быть сделано? Повлияет ли указание источника и цели на последующие расчеты Degree_centrality?

Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Мутабельность и переработка объектов в Python
Мутабельность и переработка объектов в Python
Объекты являются основной конструкцией любого языка ООП, и каждый язык определяет свой собственный синтаксис для их создания, обновления и...
Другой маршрут в Flask Python
Другой маршрут в Flask Python
Flask - это фреймворк, который поддерживает веб-приложения. В этой статье я покажу, как мы можем использовать @app .route в flask, чтобы иметь другую...
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
Проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
Python PyPDF2 - запись метаданных PDF
Python PyPDF2 - запись метаданных PDF
Python скрипт, который будет записывать метаданные в PDF файл, для этого мы будем использовать PDF ридер из библиотеки PyPDF2 . PyPDF2 - это...
1
0
81
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Да, для создания ненаправленной сети из фрейма данных необходимо указать источник и цель.

Не обязательно, но чтобы граф был неориентированным, можно указать create_using kwarg:

from networkx import Graph, from_pandas_edgelist

df = ...

# note that Graph is the default setting, so specifying
# create_using=Graph is optional
G = from_pandas_edgelist(df, "topic", "neighbor", create_using=Graph)


print(G.is_directed())
# False

Попробуй это:

import pandas as pd
import networkx as nx

df = pd.read_clipboard()
print(df)

Вывод:

  topic neighbor
0     K       Kl
1     K       Pr
2    Kl       TS
3    Pr       Kl
4    Pr       Pr

Используйте параметры source и target:

G = nx.from_pandas_edgelist(df, source='topic', target='neighbor')
nx.draw_networkx(G)

Вывод:

Другие вопросы по теме