我有一个6000行数据框,如下所示:
index name title appearance
0 John Article 1 1.0
1 John Article 3 1.0
2 Jane Article 1 1.0
3 Jane Article 2 1.0
4 Sarah Article 2 1.0
我通过获取数据框的叉积创建了邻接矩阵:
covar_df = pd.DataFrame(columns = df.name.unique(), index = df.title.unique())
covar_df = covar_df.fillna(0)
for index, row in df.iterrows():
person = df.loc[index, 'name']
appearance = df.loc[index, 'appearance']
covar_df.loc[df.loc[index, 'title'], person] += appearance
adjacency_df = pd.DataFrame(np.dot(covar_df.T, covar_df), index = df.name.unique(), columns = df.name.unique())
邻接矩阵中的大多数节点都是正确的,但事实并非如此。例如,如果输入以下内容,则使用实际数据:
[In]: covar_df['John'].sum()
[Out]: 626
但是在邻接矩阵中John与John相交的节点是630。
我不愿意共享数据集本身,所以我想知道我的代码中是否总有一些东西可以解决这个问题?