gpt4 book ai didi

python - get_dummies 拆分字符

转载 作者:行者123 更新时间:2023-11-28 22:33:53 25 4
gpt4 key购买 nike

我有需要应用单热编码的标记数据:'786.2', 'ICD-9-CM|786.2', ' ICD-9-CM', '786.2b|V13.02', 'V13.02', '279.12' , 'ICD-9-CM|V42.81' 是标签。 | 表示文档同时有 2 个标签。所以我写了这样的代码:

labels = np.asarray(label_docs)

labels = np.array([u'786.2', u'ICD-9-CM|786.2', u'|ICD-9-CM', u'786.2b|V13.02', u'V13.02', u'279.12', u'ICD-9-CM|V42.81|'])

df = pd.DataFrame(labels, columns=['label'])
labels = df['label'].str.get_dummies(sep='|')

结果:

279.12  786.2  786.2b  ICD-9-CM  V13.02  V42.81
0 0 1 0 0 0 0
1 0 1 0 1 0 0
2 0 0 0 1 0 0
3 0 0 1 0 1 0
4 0 0 0 0 1 0
5 1 0 0 0 0 0
6 0 0 0 1 0 1

但是,现在我只希望每个文档有 1 个标签:

'ICD-9-CM|786.2''ICD-9-CM',

'ICD-9-CM|V42.81|''ICD-9-CM'

我怎样才能像那样通过 get_dummies 进行分离?

最佳答案

我想你需要str.stripstr.split然后通过 str[0] 选择列表的第一项:

print (df.label.str.strip('|').str.split('|').str[0])
0 786.2
1 ICD-9-CM
2 ICD-9-CM
3 786.2b
4 V13.02
5 279.12
6 ICD-9-CM
Name: label, dtype: object

labels = df.label.str.strip('|').str.split('|').str[0].str.get_dummies()
print (labels)
279.12 786.2 786.2b ICD-9-CM V13.02
0 0 1 0 0 0
1 0 0 0 1 0
2 0 0 0 1 0
3 0 0 1 0 0
4 0 0 0 0 1
5 1 0 0 0 0
6 0 0 0 1 0

如果索引为 2 的行不需要任何值,则删除 str.strip:

print (df.label.str.split('|').str[0])
0 786.2
1 ICD-9-CM
2
3 786.2b
4 V13.02
5 279.12
6 ICD-9-CM
Name: label, dtype: object

labels = df.label.str.split('|').str[0].str.get_dummies(sep='|')
print (labels)

279.12 786.2 786.2b ICD-9-CM V13.02
0 0 1 0 0 0
1 0 0 0 1 0
2 0 0 0 0 0
3 0 0 1 0 0
4 0 0 0 0 1
5 1 0 0 0 0
6 0 0 0 1 0

关于python - get_dummies 拆分字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39483546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com