基于列出源和目标之间的连接的数据框
import pandas as pd
df = pd.DataFrame({'source':['A','B','B'],'destination':['B','C','C']})
print(df)
source destination
0 A B
1 B C
2 B C
我想计算一个方阵,其中包含所有配对的连接数,即结果DataFrame应该为
A B C
A 0 1 0
B 0 0 2
C 0 0 0
其中索引代表来源,而列则标记目的地。
我要怎么去那儿?
最佳答案
将crosstab
与DataFrame.reindex
一起使用:
v = np.unique(df.values)
df1 = pd.crosstab(df.source, df.destination).reindex(index=v, columns=v, fill_value=0)
print (df1)
destination A B C
source
A 0 1 0
B 0 0 2
C 0 0 0