我有一个类似于隶属矩阵的数据帧。我有一个人,一个事件和事件的年份。你知道吗
d = {'person' : ['1', '2', '3', '1', '4', '3', '4', '1', '2'],
'event' : ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'],
'year' : [1995, 1995, 1995, 1996, 1996, 2000, 2000, 2001, 2001]}
df = pd.DataFrame(d)
我需要两个人第一次见面。也就是说,如果“1”和“2”在事件“A”和“D”中相遇,我需要知道他们第一次见面的时间(在这个例子中,是在1995年的“A”中)。你知道吗
我不知道这是否可以使用NetworkX,或者我是否需要用其他方式使用Pandas。我该怎么做?你知道吗
我可以到达投影网络,但我不知道如何将属性'year'转移到投影网络的边缘。需要注意的是,属性(在本例中为“年”)是事件的一个属性,因此它对于每个事件的所有边都是常量。你知道吗
到目前为止,我的情况是:
import networkx as nx
import pandas as pd
d = {'person' : ['1', '2', '3', '1', '4', '3', '4', '1', '2'],
'event' : ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'],
'year' : [1995, 1995, 1995, 1996, 1996, 2000, 2000, 2001, 2001]}
df = pd.DataFrame(d)
B = nx.from_pandas_dataframe(df, 'person', 'event', edge_attr='year')
G = nx.bipartite.projected_graph(B, df.person.unique(), multigraph = True)
我对NetworkX还不够熟悉,无法帮助您解决添加边属性的问题,但这种方法确实可以识别个人的第一次会面。你知道吗
相关问题 更多 >
编程相关推荐