如何更改Pandas中没有列名的列的类型?

2024-09-28 01:31:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据类型有问题

请假设这是我的示例数据框

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'

先谢谢你


Tags: newget矩阵数据类型df1docidclass1class2

热门问题