# Importamos las librerias y dependencias necesarias.
import pandas as pd
import numpy as np
import spacy
from spacy import displacy
import networkx as nx
import matplotlib.pyplot as plt
datos = pd.read_csv('grupos.csv', index_col=None)
datos.head(10)
| source | target | |
|---|---|---|
| 0 | Jesus | Alexis |
| 1 | Jesus | Aldahir |
| 2 | Jesus | David |
| 3 | Jesus | Israel |
| 4 | Jesus | Mago |
| 5 | Jesus | Ramon |
| 6 | Alexis | Jesus |
| 7 | Aldahir | Jesus |
| 8 | David | Jesus |
| 9 | Israel | Jesus |
relationship_df = pd.DataFrame(datos)
pd.set_option('display.max_rows', None)
relationship_df
| source | target | |
|---|---|---|
| 0 | Jesus | Alexis |
| 1 | Jesus | Aldahir |
| 2 | Jesus | David |
| 3 | Jesus | Israel |
| 4 | Jesus | Mago |
| 5 | Jesus | Ramon |
| 6 | Alexis | Jesus |
| 7 | Aldahir | Jesus |
| 8 | David | Jesus |
| 9 | Israel | Jesus |
| 10 | Mago | Jesus |
| 11 | Ramon | Jesus |
| 12 | Lesli | Alexis |
| 13 | Lesli | Aldahir |
| 14 | Alexis | Lesli |
| 15 | Aldahir | Lesli |
| 16 | Said | Alexis |
| 17 | Said | Aldahir |
| 18 | Said | Ceci |
| 19 | Said | David |
| 20 | Said | Israel |
| 21 | Said | Mago |
| 22 | Said | Ramon |
| 23 | Said | Naye |
| 24 | Said | Vianey |
| 25 | Alexis | Said |
| 26 | Aldahir | Said |
| 27 | Ceci | Said |
| 28 | David | Said |
| 29 | Israel | Said |
| 30 | Mago | Said |
| 31 | Ramon | Said |
| 32 | Naye | Said |
| 33 | Vianey | Said |
| 34 | Oscar | Alexis |
| 35 | Oscar | Aldahir |
| 36 | Oscar | Ceci |
| 37 | Oscar | David |
| 38 | Oscar | Israel |
| 39 | Oscar | Mago |
| 40 | Oscar | Ramon |
| 41 | Oscar | Naye |
| 42 | Oscar | Vianey |
| 43 | Alexis | Oscar |
| 44 | Aldahir | Oscar |
| 45 | Ceci | Oscar |
| 46 | David | Oscar |
| 47 | Israel | Oscar |
| 48 | Mago | Oscar |
| 49 | Ramon | Oscar |
| 50 | Naye | Oscar |
| 51 | Vianey | Oscar |
| 52 | Oscar | Brian |
| 53 | Oscar | Fernando |
| 54 | Oscar | Dzain |
| 55 | Oscar | Misael |
| 56 | Oscar | Karen |
| 57 | Oscar | Estefania |
| 58 | Oscar | Marisol |
| 59 | Lesli | Marisol |
| 60 | Brian | Oscar |
| 61 | Fernando | Oscar |
| 62 | Dzain | Oscar |
| 63 | Misael | Oscar |
| 64 | Karen | Oscar |
| 65 | Estefania | Oscar |
| 66 | Marisol | Oscar |
| 67 | Marisol | Lesli |
| 68 | Brian | Fernando |
| 69 | Brian | Dzain |
| 70 | Brian | Misael |
| 71 | Fernando | Brian |
| 72 | Fernando | Dzain |
| 73 | Fernando | Misael |
| 74 | Dzain | Brian |
| 75 | Dzain | Fernando |
| 76 | Dzain | Misael |
| 77 | Misael | Brian |
| 78 | Misael | Fernando |
| 79 | Misael | Dzain |
| 80 | Karen | Estefania |
| 81 | Karen | Marisol |
| 82 | Estefania | Karen |
| 83 | Estefania | Marisol |
| 84 | Marisol | Karen |
| 85 | Marisol | Estefania |
| 86 | Azul | Bere |
| 87 | Azul | Carlos |
| 88 | Azul | Lesli |
| 89 | Yahir | Armando |
| 90 | Yahir | Bere |
| 91 | Yahir | Carlos |
| 92 | Yahir | Oscar |
| 93 | Yahir | Said |
| 94 | Armando | Yahir |
| 95 | Armando | Oscar |
| 96 | Armando | Carlos |
| 97 | Bere | Azul |
| 98 | Bere | Yahir |
| 99 | Bere | Carlos |
| 100 | Bere | Francisco |
| 101 | Bere | Lesli |
| 102 | Bere | Oscar |
| 103 | Bere | Pedro |
| 104 | Bere | Said |
| 105 | Carlos | Azul |
| 106 | Carlos | Yahir |
| 107 | Carlos | Bere |
| 108 | Carlos | Jesus |
| 109 | Carlos | Francisco |
| 110 | Carlos | Lesli |
| 111 | Carlos | Oscar |
| 112 | Carlos | Pedro |
| 113 | Carlos | Said |
| 114 | Jesus | Carlos |
| 115 | Jesus | Francisco |
| 116 | Jesus | Lesli |
| 117 | Jesus | Oscar |
| 118 | Jesus | Said |
| 119 | Francisco | Azul |
| 120 | Francisco | Yahir |
| 121 | Francisco | Armando |
| 122 | Francisco | Bere |
| 123 | Francisco | Carlos |
| 124 | Francisco | Jesus |
| 125 | Francisco | Lesli |
| 126 | Francisco | Oscar |
| 127 | Francisco | Pedro |
| 128 | Francisco | Said |
| 129 | Lesli | Azul |
| 130 | Lesli | Yahir |
| 131 | Lesli | Bere |
| 132 | Lesli | Carlos |
| 133 | Lesli | Jesus |
| 134 | Lesli | Francisco |
| 135 | Lesli | Oscar |
| 136 | Lesli | Pedro |
| 137 | Lesli | Said |
| 138 | Oscar | Azul |
| 139 | Oscar | Yahir |
| 140 | Oscar | Armando |
| 141 | Oscar | Bere |
| 142 | Oscar | Carlos |
| 143 | Oscar | Jesus |
| 144 | Oscar | Francisco |
| 145 | Oscar | Lesli |
| 146 | Oscar | Pedro |
| 147 | Oscar | Said |
| 148 | Pedro | Bere |
| 149 | Pedro | Carlos |
| 150 | Pedro | Francisco |
| 151 | Pedro | Lesli |
| 152 | Pedro | Oscar |
| 153 | Pedro | Said |
| 154 | Said | Carlos |
| 155 | Said | Francisco |
| 156 | Said | Lesli |
| 157 | Said | Oscar |
| 158 | Alexis | Ceci |
| 159 | Alexis | Vianey |
| 160 | Alexis | Mago |
| 161 | Aldahir | David |
| 162 | Aldahir | Israel |
| 163 | Aldahir | Ramon |
| 164 | Aldahir | Naye |
| 165 | Ceci | Alexis |
| 166 | Ceci | Vianey |
| 167 | Ceci | Aldahir |
| 168 | David | Aldahir |
| 169 | David | Israel |
| 170 | David | Mago |
| 171 | David | Ramon |
| 172 | David | Naye |
| 173 | Israel | Alexis |
| 174 | Israel | Aldahir |
| 175 | Israel | Ceci |
| 176 | Israel | David |
| 177 | Israel | Mago |
| 178 | Israel | Ramon |
| 179 | Israel | Naye |
| 180 | Israel | Vianey |
| 181 | Mago | Alexis |
| 182 | Mago | David |
| 183 | Mago | Israel |
| 184 | Mago | Ramon |
| 185 | Ramon | Alexis |
| 186 | Ramon | Aldahir |
| 187 | Ramon | David |
| 188 | Ramon | Israel |
| 189 | Ramon | Mago |
| 190 | Ramon | Naye |
| 191 | Ramon | Vianey |
| 192 | Naye | Aldahir |
| 193 | Naye | David |
| 194 | Naye | Israel |
| 195 | Naye | Ramon |
| 196 | Vianey | Alexis |
| 197 | Vianey | Ceci |
| 198 | Vianey | Israel |
| 199 | Vianey | Ramon |
relationship_df = pd.DataFrame(np.sort(relationship_df.values, axis = 1), columns = relationship_df.columns)
relationship_df
| source | target | |
|---|---|---|
| 0 | Alexis | Jesus |
| 1 | Aldahir | Jesus |
| 2 | David | Jesus |
| 3 | Israel | Jesus |
| 4 | Jesus | Mago |
| 5 | Jesus | Ramon |
| 6 | Alexis | Jesus |
| 7 | Aldahir | Jesus |
| 8 | David | Jesus |
| 9 | Israel | Jesus |
| 10 | Jesus | Mago |
| 11 | Jesus | Ramon |
| 12 | Alexis | Lesli |
| 13 | Aldahir | Lesli |
| 14 | Alexis | Lesli |
| 15 | Aldahir | Lesli |
| 16 | Alexis | Said |
| 17 | Aldahir | Said |
| 18 | Ceci | Said |
| 19 | David | Said |
| 20 | Israel | Said |
| 21 | Mago | Said |
| 22 | Ramon | Said |
| 23 | Naye | Said |
| 24 | Said | Vianey |
| 25 | Alexis | Said |
| 26 | Aldahir | Said |
| 27 | Ceci | Said |
| 28 | David | Said |
| 29 | Israel | Said |
| 30 | Mago | Said |
| 31 | Ramon | Said |
| 32 | Naye | Said |
| 33 | Said | Vianey |
| 34 | Alexis | Oscar |
| 35 | Aldahir | Oscar |
| 36 | Ceci | Oscar |
| 37 | David | Oscar |
| 38 | Israel | Oscar |
| 39 | Mago | Oscar |
| 40 | Oscar | Ramon |
| 41 | Naye | Oscar |
| 42 | Oscar | Vianey |
| 43 | Alexis | Oscar |
| 44 | Aldahir | Oscar |
| 45 | Ceci | Oscar |
| 46 | David | Oscar |
| 47 | Israel | Oscar |
| 48 | Mago | Oscar |
| 49 | Oscar | Ramon |
| 50 | Naye | Oscar |
| 51 | Oscar | Vianey |
| 52 | Brian | Oscar |
| 53 | Fernando | Oscar |
| 54 | Dzain | Oscar |
| 55 | Misael | Oscar |
| 56 | Karen | Oscar |
| 57 | Estefania | Oscar |
| 58 | Marisol | Oscar |
| 59 | Lesli | Marisol |
| 60 | Brian | Oscar |
| 61 | Fernando | Oscar |
| 62 | Dzain | Oscar |
| 63 | Misael | Oscar |
| 64 | Karen | Oscar |
| 65 | Estefania | Oscar |
| 66 | Marisol | Oscar |
| 67 | Lesli | Marisol |
| 68 | Brian | Fernando |
| 69 | Brian | Dzain |
| 70 | Brian | Misael |
| 71 | Brian | Fernando |
| 72 | Dzain | Fernando |
| 73 | Fernando | Misael |
| 74 | Brian | Dzain |
| 75 | Dzain | Fernando |
| 76 | Dzain | Misael |
| 77 | Brian | Misael |
| 78 | Fernando | Misael |
| 79 | Dzain | Misael |
| 80 | Estefania | Karen |
| 81 | Karen | Marisol |
| 82 | Estefania | Karen |
| 83 | Estefania | Marisol |
| 84 | Karen | Marisol |
| 85 | Estefania | Marisol |
| 86 | Azul | Bere |
| 87 | Azul | Carlos |
| 88 | Azul | Lesli |
| 89 | Armando | Yahir |
| 90 | Bere | Yahir |
| 91 | Carlos | Yahir |
| 92 | Oscar | Yahir |
| 93 | Said | Yahir |
| 94 | Armando | Yahir |
| 95 | Armando | Oscar |
| 96 | Armando | Carlos |
| 97 | Azul | Bere |
| 98 | Bere | Yahir |
| 99 | Bere | Carlos |
| 100 | Bere | Francisco |
| 101 | Bere | Lesli |
| 102 | Bere | Oscar |
| 103 | Bere | Pedro |
| 104 | Bere | Said |
| 105 | Azul | Carlos |
| 106 | Carlos | Yahir |
| 107 | Bere | Carlos |
| 108 | Carlos | Jesus |
| 109 | Carlos | Francisco |
| 110 | Carlos | Lesli |
| 111 | Carlos | Oscar |
| 112 | Carlos | Pedro |
| 113 | Carlos | Said |
| 114 | Carlos | Jesus |
| 115 | Francisco | Jesus |
| 116 | Jesus | Lesli |
| 117 | Jesus | Oscar |
| 118 | Jesus | Said |
| 119 | Azul | Francisco |
| 120 | Francisco | Yahir |
| 121 | Armando | Francisco |
| 122 | Bere | Francisco |
| 123 | Carlos | Francisco |
| 124 | Francisco | Jesus |
| 125 | Francisco | Lesli |
| 126 | Francisco | Oscar |
| 127 | Francisco | Pedro |
| 128 | Francisco | Said |
| 129 | Azul | Lesli |
| 130 | Lesli | Yahir |
| 131 | Bere | Lesli |
| 132 | Carlos | Lesli |
| 133 | Jesus | Lesli |
| 134 | Francisco | Lesli |
| 135 | Lesli | Oscar |
| 136 | Lesli | Pedro |
| 137 | Lesli | Said |
| 138 | Azul | Oscar |
| 139 | Oscar | Yahir |
| 140 | Armando | Oscar |
| 141 | Bere | Oscar |
| 142 | Carlos | Oscar |
| 143 | Jesus | Oscar |
| 144 | Francisco | Oscar |
| 145 | Lesli | Oscar |
| 146 | Oscar | Pedro |
| 147 | Oscar | Said |
| 148 | Bere | Pedro |
| 149 | Carlos | Pedro |
| 150 | Francisco | Pedro |
| 151 | Lesli | Pedro |
| 152 | Oscar | Pedro |
| 153 | Pedro | Said |
| 154 | Carlos | Said |
| 155 | Francisco | Said |
| 156 | Lesli | Said |
| 157 | Oscar | Said |
| 158 | Alexis | Ceci |
| 159 | Alexis | Vianey |
| 160 | Alexis | Mago |
| 161 | Aldahir | David |
| 162 | Aldahir | Israel |
| 163 | Aldahir | Ramon |
| 164 | Aldahir | Naye |
| 165 | Alexis | Ceci |
| 166 | Ceci | Vianey |
| 167 | Aldahir | Ceci |
| 168 | Aldahir | David |
| 169 | David | Israel |
| 170 | David | Mago |
| 171 | David | Ramon |
| 172 | David | Naye |
| 173 | Alexis | Israel |
| 174 | Aldahir | Israel |
| 175 | Ceci | Israel |
| 176 | David | Israel |
| 177 | Israel | Mago |
| 178 | Israel | Ramon |
| 179 | Israel | Naye |
| 180 | Israel | Vianey |
| 181 | Alexis | Mago |
| 182 | David | Mago |
| 183 | Israel | Mago |
| 184 | Mago | Ramon |
| 185 | Alexis | Ramon |
| 186 | Aldahir | Ramon |
| 187 | David | Ramon |
| 188 | Israel | Ramon |
| 189 | Mago | Ramon |
| 190 | Naye | Ramon |
| 191 | Ramon | Vianey |
| 192 | Aldahir | Naye |
| 193 | David | Naye |
| 194 | Israel | Naye |
| 195 | Naye | Ramon |
| 196 | Alexis | Vianey |
| 197 | Ceci | Vianey |
| 198 | Israel | Vianey |
| 199 | Ramon | Vianey |
relationship_df["value"] = 1
relationship_df = relationship_df.groupby(["source","target"], sort=False, as_index=False).sum()
relationship_df.head(20)
| source | target | value | |
|---|---|---|---|
| 0 | Alexis | Jesus | 2 |
| 1 | Aldahir | Jesus | 2 |
| 2 | David | Jesus | 2 |
| 3 | Israel | Jesus | 2 |
| 4 | Jesus | Mago | 2 |
| 5 | Jesus | Ramon | 2 |
| 6 | Alexis | Lesli | 2 |
| 7 | Aldahir | Lesli | 2 |
| 8 | Alexis | Said | 2 |
| 9 | Aldahir | Said | 2 |
| 10 | Ceci | Said | 2 |
| 11 | David | Said | 2 |
| 12 | Israel | Said | 2 |
| 13 | Mago | Said | 2 |
| 14 | Ramon | Said | 2 |
| 15 | Naye | Said | 2 |
| 16 | Said | Vianey | 2 |
| 17 | Alexis | Oscar | 2 |
| 18 | Aldahir | Oscar | 2 |
| 19 | Ceci | Oscar | 2 |
# Create a graph from a pandas dataframe
G = nx.from_pandas_edgelist(relationship_df,
source = "source",
target = "target",
edge_attr = "value",
create_using = nx.Graph())
plt.figure(figsize=(10,10))
pos = nx.kamada_kawai_layout(G)
nx.draw(G, with_labels=True, node_color='skyblue', edge_cmap=plt.cm.Blues, pos = pos)
plt.show()
from pyvis.network import Network
net = Network(notebook = True, width="1366px", height="768px", bgcolor='#222222', font_color='white')
node_degree = dict(G.degree)
#Setting up node size attribute
nx.set_node_attributes(G, node_degree, 'size')
net.from_nx(G)
net.show("rg.html")
Warning: When cdn_resources is 'local' jupyter notebook has issues displaying graphics on chrome/safari. Use cdn_resources='in_line' or cdn_resources='remote' if you have issues viewing graphics in a notebook. rg.html
# Importamos librerias necesarias para mostrar la comunidades en una red
import community as community_louvain
import community.community_louvain as community_louvain
communities = community_louvain.best_partition(G)
communities
{'Alexis': 0,
'Jesus': 0,
'Aldahir': 0,
'David': 0,
'Israel': 0,
'Mago': 0,
'Ramon': 0,
'Lesli': 1,
'Said': 0,
'Ceci': 0,
'Naye': 0,
'Vianey': 0,
'Oscar': 2,
'Brian': 2,
'Fernando': 2,
'Dzain': 2,
'Misael': 2,
'Karen': 2,
'Estefania': 2,
'Marisol': 2,
'Azul': 1,
'Bere': 1,
'Carlos': 1,
'Armando': 1,
'Yahir': 1,
'Francisco': 1,
'Pedro': 1}
nx.set_node_attributes(G, communities, 'group')
com_net = Network(notebook = True, width="1366px", height="768px", bgcolor='#222222', font_color='white')
com_net.from_nx(G)
com_net.show("rg_communities.html")
Warning: When cdn_resources is 'local' jupyter notebook has issues displaying graphics on chrome/safari. Use cdn_resources='in_line' or cdn_resources='remote' if you have issues viewing graphics in a notebook. rg_communities.html