gpt4 book ai didi

python - pandas groupby 计数共存

转载 作者:行者123 更新时间:2023-12-01 01:08:32 25 4
gpt4 key购买 nike

我想按产品获取国家/地区的亲和性。我有这样一个df:

   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

这是我尝试过的,但无法添加第二层..有什么建议吗?

最佳答案

我相信您需要 mergecrosstab 进行交叉连接,如有必要,将对角线设置为 NaN by numpy.fill_diagonal :

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

关于python - pandas groupby 计数共存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55096423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com