Python 熊猫按计数共存

Python 熊猫按计数共存,python,pandas,dataframe,group-by,Python,Pandas,Dataframe,Group By,我想通过产品了解各国的亲和力。 我有这样一个想法: cntr prod 0 fr cheese 1 ger potato 2 it cheese 3 it tomato 4 fr wine 5 it wine 6 ger cabbage 7 fr cabbage 我试图得到产品数量的共存矩阵,该矩阵将告诉我国家的亲和力,例如: fr ger it fr 1 2 ger 1 0 i

我想通过产品了解各国的亲和力。 我有这样一个想法:

   cntr  prod
0  fr    cheese
1  ger   potato
2  it    cheese
3  it    tomato
4  fr    wine
5  it    wine
6  ger   cabbage
7  fr    cabbage
我试图得到产品数量的共存矩阵,该矩阵将告诉我国家的亲和力,例如:

    fr   ger  it
fr       1    2
ger 1         0
it  2    0
我的测试是首先进行交叉分组,尝试添加一个三维空间,以便

fr   fr
     ger  1
     it   2
ger  fr   1
     ger
     it   0
it   fr   2
     ger  0
     it
这是我尝试的,但它无法添加第二层。。
有什么建议吗?

我认为您需要
合并
以实现与
交叉表的交叉连接,如有必要,通过以下方式将对角线设置为
NaN


什么是对角线值?这正是耶斯雷尔的事,非常感谢你。我真的不在乎,因为我想互相检查,而不是检查自己。我开始觉得crosstab可能会有帮助,但我还是坚持使用groupby。非常感谢。
df = pd.merge(df, df, on='prod')
df = pd.crosstab(df['cntr_x'], df['cntr_y']).astype(float)
np.fill_diagonal(df.values, np.nan)
print (df)
cntr_y   fr  ger   it
cntr_x               
fr      NaN  1.0  2.0
ger     1.0  NaN  0.0
it      2.0  0.0  NaN