Как построить график с networkx из данных твиттера - PullRequest
0 голосов
/ 02 июня 2019

Итак, я новичок, но я хочу визуализировать упоминания о пользователе, использующем networkx в Python.Я уже собрал все твиты, на которые хочу посмотреть, используя Twitter API, и поместил их в фрейм данных.Фрейм данных содержит всевозможные данные о твитах, но меня больше всего интересует пользователь (5 пользователей в DF) и который был упомянут в твите пользователя.

+-------+---------------------+
|user   |mentioned_user       |
+-------+---------------------+
|user1  |jack,peter,anne      |
|user2  |sophie               |
|user2  |anne,user1           |
+-------+---------------------+

Я понимаю, что могуИзвлеките нужные мне данные, используя from_pandas_edgelist примерно так:

test = nx.from_pandas_edgelist(
    df,
    source='user',
    target='mentioned_user',
    edge_attr=True,
    create_using=nx.DiGraph()
)

Но что мне делать дальше?Я хотел бы иметь график для каждого пользователя, где user и said_user являются узлами.

Любая помощь очень ценится!

1 Ответ

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

С помощью вашего кода вы создадите узлы из строк в столбце 'user' и строк в столбце 'mentioned_user' как есть, без разделения их на разных пользователей. Поэтому вы должны разбить столбец 'mentioned_user' и выполнить итерации по фрейму данных вручную:

df = pd.DataFrame({
    'user':['user1','user2','user2'],
    'mentioned_user':['jack,peter,anne','sophie','anne,user1']
})
df['splitted_users'] = df['mentioned_user'].apply(lambda x: x.split(','))

G = nx.DiGraph()
for r in df.iterrows():
    for user in r[1]['splitted_users']:
        G.add_edge(r[1]['user'], user)
nx.draw(G, with_labels=True)

нарисует вас:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...