You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含多国家的Dataframe转换为以ID为索引的邻接矩阵?

解决方案

你可以通过以下步骤用Pandas实现需求:

  1. 构造原始DataFrame(如果已有数据可跳过此步)
import pandas as pd

data = {
    'ID': [1, 2, 3, 4],
    'Country': ['Italy, Spain', 'Spain, South Africa', 'France, Germany', 'Germany, Spain']
}
df = pd.DataFrame(data)
  1. 拆分并展开国家列
    将每个ID对应的多个国家拆分为单独行,保留ID关联:
df_expanded = df.assign(Country=df['Country'].str.split(', ')).explode('Country')
  1. 生成邻接矩阵
    使用crosstab生成ID与国家的交叉表,自动标记每个ID对应的国家为1,其余为0:
adj_matrix = pd.crosstab(df_expanded['ID'], df_expanded['Country'])

执行后得到的邻接矩阵如下:

IDFranceGermanyItalySpainSouth Africa
100110
200011
311000
401010

注:你提供的目标矩阵中ID3的Germany值为0,这与原始数据中ID3包含Germany的信息不符,上述结果是基于原始数据生成的正确邻接矩阵。

内容的提问来源于stack exchange,提问作者josé96

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 01:35:15