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