【发布时间】:2017-10-29 07:46:50
【问题描述】:
data1 = { 'node1': [1,1,1,2],
'node2': [2,3,5,4],
'weight': [1,1,1,1], }
df1 = pd.DataFrame(data1, columns = ['node1','node2','weight'])
data2 = { 'node1': [1,1,2,3],
'node2': [4,5,4,5],
'weight': [1,1,1,1], }
df2= pd.DataFrame(data2, columns = ['node1','node2','weight'])
我想创建一个矩阵,矩阵中的 1 表示在第二个数据帧中形成的新行。 例如- 2 4 是两个数据帧中的一行,因此在矩阵中我们放置 matrix[2,4]=0 和 [4,2]=0 因为关系是双向的。
2) 1 4 是第二个数据帧中的一个新行,它不在第一个数据帧中,因此我们将 matrix[1,4]=1 和 [4,1]=1
3)如果一个组合在两个 dfs 中都不像 [3,4],那么它的矩阵 [3,4]=matrix[4,3]=0
预期输出:
0 0 0 1 0
0 0 0 0 0
0 0 0 0 1
1 0 0 0 0
0 0 1 0 0
【问题讨论】:
-
所以如果一个组合没有出现在 df1 中,这意味着您将值设置为 1,对吗?
-
是的。如果 df2 中存在行但 df1 中不存在行,则为 1
-
如果两者都没有出现组合怎么办?
-
如果组合中没有任何组合,那么它的 0 。就像上面的例子 [3,4] 不存在,因此 matrix[3,4]=matrix[4,3]=0
-
我已经编辑了我的答案,向您展示如何将其推广到更大的数据,谢谢。
标签: python pandas dataframe matrix