我有一个类似的样本数据集:丰田凯美瑞丰田Avalon本田思域本田雅阁大众帕萨特大众捷达
在此数据集中,我需要计算第一列和第二列中有多少唯一值。然后,对于每个唯一值,有多少值与第二列值相关联。示例 - 丰田与坎比和阿瓦隆有联系。我需要创建一个邻接m * n矩阵,其中m =第一列中唯一值的数量,n =第二列中唯一值的数量。我的最终输出如下:
Camry Avalon Civic Accord Passat Jetta
丰田1 1 0 0 0 0本田0 0 1 1 0 0大众0 0 0 0 1 1
我需要一些关于如何通过python解决这个问题的帮助。
我不会打电话给你想要的adjacency matrix。但是,可以非常容易地创建所需的结构(请参阅代码中的注释):
import pandas
import StringIO
dataset = '''Toyota Camry
Toyota Avalon
Honda Civic
Honda Accord
Volkswagen Passat
Volkswagen Jetta'''
# read the dataset into DataFrame d
d = pandas.read_csv(StringIO.StringIO(dataset), ' ', header=None, names=(0, 1))
# make output DataFrame x with rows from first and columns from second input column
x = pandas.DataFrame(0, index=d[0].unique(), columns=d[1].unique())
# set the existing combinations to 1
for e in d.itertuples(index=False, name=None):
x.at[e] = 1