Python中不同符号文本数据的预处理

2024-04-24 13:45:35 发布

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

使用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'

你有没有什么方法可以有效地去除唯一性符号的数量?你知道吗


Tags: 数据代码文本df数量产品符号product
1条回答
网友
1楼 · 发布于 2024-04-24 13:45:35

为每个强度添加一个带有固定标签的新列,并基于适当的ml分类器对其进行训练,并预测新项的适当强度。你知道吗

对于每个新的符号,手动分配一个新的标签并重新训练。。。你知道吗

相关问题 更多 >