【发布时间】:2018-03-19 17:22:47
【问题描述】:
我想在删除所有数字(如 189、98001)、特殊字符('、_、“、(,))后为文本数据创建一个新列(该列的每一行是一个描述),以及带有数字或特殊字符的字母(e21x16、e267、e4、e88889、entry778、id2、n27th、pv3、)。
所以我写了下面的函数。但是,返回的结果仍然包含数字和特殊字符。基本上,我的目标是只保留英文单词和缩写。有谁知道为什么我的功能不起作用。
def standardize_text(df, text_field):
df[text_field] = df[text_field].str.lower()
df[text_field] = df[text_field].str.replace(r'(', '')
df[text_field] = df[text_field].str.replace(r')', '')
df[text_field] = df[text_field].str.replace(r',', '')
df[text_field] = df[text_field].str.replace(r'_', '')
df[text_field] = df[text_field].str.replace(r"'", "")
df[text_field] = df[text_field].str.replace(r"^[a-z]+\[0-9]+$", "")
df[text_field] = df[text_field].str.replace(r"^[0-9]{1,2,3,4,5}$", "")
return df
【问题讨论】:
-
为什么
r"^[a-z]+\[0-9]+$"中有'\'? -
您能否提供一个示例说明该列是怎样的以及您希望它是什么?
-
您还应该提供
df的类型及其成员。 -
这里是一个例子:“(n)完全洒水 42' x 57',三层三层单元公寓(townh”(还有一些错字,我不知道如何处理)。作为我想对这些描述进行主题建模,所以我需要删除非单词,例如数字和特殊字符。我不确定这是否有意义
标签: python text nlp data-cleaning