当我尝试通过第三列连接两列时出现问题
issue when i try to connect two columns by a third columns
我有一个包含以下内容的 csv 文件:
id_1
id_2
date
FD345
MER3345
06/12/2020
我想连接 id_1 -> id_2
他们之间的边缘应该是日期见下图
见 id_1 它有一条直接连接到 id_2
的边
他们之间的边缘应该是日期
所以我所做的就是这样的:
import networkx as nx
import pandas as pd
df = pd.read_csv('data.csv')
G = nx.from_pandas_edgelist(df, source = "id_1", target = "id_2", edge_attr='date', create_using=nx.DiGraph())
但是这样它并没有按日期连接node_1和node_2它只给出了日期的属性!!
或者我理解不正确,因为当我打印 G.edges()
时,输出是这样的
('UCU6lC', 'vOGN5A'), ........
它连接节点,但我不确定它是否与日期连接!
谢谢你帮我解决了一些问题。
您需要使用draw_networkx_edge_labels()绘制边缘标签。
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
df = pd.DataFrame({'id_1': ['FD345'],
'id_2': ['MER3345'],
'date': ['06/12/2020']
})
G = nx.from_pandas_edgelist(df, source="id_1", target="id_2", create_using=nx.DiGraph())
nx.draw_networkx(G)
nx.draw_networkx_edge_labels(G, nx.spring_layout(G), edge_labels=dict(zip(G.edges, df['date'].tolist())),
verticalalignment='center_baseline')
plt.show()
我有一个包含以下内容的 csv 文件:
id_1 | id_2 | date |
---|---|---|
FD345 | MER3345 | 06/12/2020 |
我想连接 id_1 -> id_2
他们之间的边缘应该是日期见下图
见 id_1 它有一条直接连接到 id_2
的边他们之间的边缘应该是日期
所以我所做的就是这样的:
import networkx as nx
import pandas as pd
df = pd.read_csv('data.csv')
G = nx.from_pandas_edgelist(df, source = "id_1", target = "id_2", edge_attr='date', create_using=nx.DiGraph())
但是这样它并没有按日期连接node_1和node_2它只给出了日期的属性!!
或者我理解不正确,因为当我打印 G.edges()
时,输出是这样的('UCU6lC', 'vOGN5A'), ........
它连接节点,但我不确定它是否与日期连接!
谢谢你帮我解决了一些问题。
您需要使用draw_networkx_edge_labels()绘制边缘标签。
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
df = pd.DataFrame({'id_1': ['FD345'],
'id_2': ['MER3345'],
'date': ['06/12/2020']
})
G = nx.from_pandas_edgelist(df, source="id_1", target="id_2", create_using=nx.DiGraph())
nx.draw_networkx(G)
nx.draw_networkx_edge_labels(G, nx.spring_layout(G), edge_labels=dict(zip(G.edges, df['date'].tolist())),
verticalalignment='center_baseline')
plt.show()