我的数据类型有问题
请假设这是我的示例数据框
class1 class2 docid
A123 08/9 X123
A123 08/1 X123
A124 08/1 X124
A124 08/2 X124
A125 08/3 X125
我合并了class1和class2,然后命名为class3
class3 docid
A123,08/9 X123
A123,08/1 X123
A124,08/1 X124
A124,08/2 X124
A125,08/3 X125
然后用get_假人制作一个矩阵
df1 = pd.get_dummies(df.docid).sort_index(level=0).max(level=[0,1])
df1
得到这样的结果
class3 X123 X124 X125
A123,08/9 1 0 0
A123,08/1 1 0 0
A124,08/1 0 1 0
A124,08/2 0 1 0
A125,08/3. 0 0 1
然后我去掉了class3,然后转置了这个矩阵,用docid来计算Jaccard的相似性
df1_new = df1.drop(['class3'], axis=1)
df1_new_1 = df1_new.transpose()
df1_new_1
结果是这样的
0 1 2 3 4
X123 1 1 0 0 0
X124 0 0 1 1 0
X125 0 0 0 0 1
根据这个结果,列没有名称,然后我想问如何将X123 X124 X125更改为0 1 2或仅将数据类型从string更改为int?因为,当我使用这个结果来计算Jaccard相似性时,它出现了
ValueError: invalid literal for int() with base 10: 'X123'
先谢谢你
如果您的问题只是将str索引更改为int,那么可以使用
如果要保留字符串中的值,可以使用
输出:
相关问题 更多 >
编程相关推荐