热线电话:13121318867

登录
2019-03-11 阅读量: 772
pandas计数共存

我希望通过产品获得各国的亲和力。我有这样一个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

这是我试过的,但它没有添加第二层..任何建议?

解决办法:我相信你需要merge交叉与加盟crosstab,并在必要时设置对角NaN的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

11.0829
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子