Как создать график из списка ребер, используя GraphFrame - PullRequest
0 голосов
/ 07 июня 2019

У меня есть датафрейм с двумя столбцами, представляющими собой список ребер, и я хочу создать из него график, используя pyspark или python Может кто-нибудь подсказать, как это сделать. В R это можно сделать с помощью команды ниже от igraph

graph.edgelist(as.matrix(df))

мой входной фрейм данных df

    valx      valy 
1: 600060     09283744
2: 600131     96733110 
3: 600194     01700001

Мой вывод должен выглядеть следующим образом (это в основном все valx и valy под V1 и информация об их членстве под V2)

V1               V2
600060           1
96733110         1
01700001         2

1 Ответ

1 голос
/ 07 июня 2019

По вашему желаемому выводу вам не нужен график, а скорее массив, который показывает, в какой строке было изначально сохранено ваше значение V1. Что вы можете получить из исходного кадра данных.

I 'Я собираюсь предположить, что вы хотите, чтобы преобразовать кадр данных в графическом формате, а не выше.

import networkx as nx
import pandas as pd

filelocation = r'C:\Users\Documents\Tilo Edgelist'

Panda_edgelist = pd.read_csv(filelocation)

g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')

nx.draw(g,with_labels = True,node_size = 0)

Приведенный выше код создаст график для вас в python, ниже показан внешний вид вывода, если вы рисуете график с помощью функции draw из networkx.

Graph output to console

Я пошел дальше и предположил, что вы создаете фрейм данных, читая какой-то файл.

Если вы можете преобразовать этот файл в файл csv, то вы можете прочитать его на фрейме данных с пандами.

Формат используемого CSV-файла выглядит следующим образом:

valx,valy

600060,09283744

600131,96733110 

600194,01700001

подставьте путь к файлу между кавычками для пути к файлу CSV-файла.

ниже вы можетеПосмотрите, как выглядит фрейм данных из pd.read_csv

   valx      valy
0  600060   9283744
1  600131  96733110
2  600194   1700001

Итак, мы передаем этот фрейм данных в networkx для создания графа

g = nx.from_pandas_edgelist(Panda_edgelist,'valx','valy')

В приведенной выше функции вы можете увидеть Iдали ему аргумент Panda_edgelist, а затем 'valx' и 'valy' в качестве имен столбцов исходного и целевого узлов соответственно.Он использует эти аргументы для создания графа с именем g.

Наконец, я нарисовал график, сгенерированный для консоли, используя nx.draw.

 nx.draw(g,with_labels = True,node_size = 0)

Эта функция требует, чтобы вы передали ейграфик, г в нашем случае.

with_labels = True используется для рисования имен / идентификаторов узлов.

node_size = 0 используется, чтобы сделать размер узла равным 0. По умолчанию, если вы не передадите функции этот аргумент, он будет рисовать маленькие красные кружки для представления узлов на графике.

...