使用python3,我处理一个需要文本预处理的数据帧。你知道吗
数据框架包括具有许多不同优势的许多不同医疗产品的历史销售额。为了简化,下面的代码只显示了强度柱的一部分。你知道吗
df = pd.DataFrame({'Strength': ['20 mg / 120 mg', ' 40/320 mg', '20mg/120mg', '150+750mg', '20/120MG', '62.5mg/375mg', '100 mg', 'Product1 20 mg, Product2 120 mg', '40mg/320mg', 'Product 20mg/120mg', 'Product1 20mg Product2 120mg', '100mg/1ml', '20 mg./ 120 mg..', '62.5 mg / 375 mg', '40/320mg 9s', '40/320', '50/125', '100mg..' '20/120']})
Strength
0 20 mg / 120 mg
1 40/320 mg
2 20mg/120mg
3 150+750mg
4 20/120MG
5 62.5mg/375mg
6 100 mg
7 Product1 20 mg, Product2 120 mg
8 40mg/320mg
9 Product 20mg/120mg
10 Product1 20mg Product2 120mg
11 100mg/1ml
12 20 mg./ 120 mg..
13 62.5 mg / 375 mg
14 40/320mg 9s
15 40/320
16 50/125
17 100mg..20/120
正如你所看到的,实际上属于同一强度的产品有不同的拼写。例如,“20 mg/120 mg”和“蒿甲醚20 mg,羽扇豆素120 mg”实际上具有相同的强度。你知道吗
将文本设置为小写,删除空格并用下面的代码替换+by/可以带来一些标准化,但是仍然有一些行具有明显相同的强度。你知道吗
df['Strength'] = df['Strength'].str.lower()
df['Strength'] = df['Strength'].str.replace(' ', '')
df['Strength'] = df['Strength'].str.replace('+', '/')
添加如下命令可以进一步减少不同符号的数量,但这太过手动了。你知道吗
df['Strength'].loc[df['Strength'].str.contains('Product1', case=False)
& df['Strength'].str.contains('Product2', case=False)] = '20mg/120mg'
你有没有什么方法可以有效地去除唯一性符号的数量?你知道吗
为每个强度添加一个带有固定标签的新列,并基于适当的ml分类器对其进行训练,并预测新项的适当强度。你知道吗
对于每个新的符号,手动分配一个新的标签并重新训练。。。你知道吗
相关问题 更多 >
编程相关推荐