Python 无法删除特殊字符;:??/&书信电报;
我正在加载带有逗号分隔值的csv文件。Buit Tax_Amount列具有特殊字符,它将替换这些值。 如何解决这个问题? 我尝试了下面的代码。但不起作用。Python 无法删除特殊字符;:??/&书信电报;,python,python-3.x,pandas,Python,Python 3.x,Pandas,我正在加载带有逗号分隔值的csv文件。Buit Tax_Amount列具有特殊字符,它将替换这些值。 如何解决这个问题? 我尝试了下面的代码。但不起作用。 税款金额价值=45000000001 SN 40HX750 SEPT17股票“;:??/bad_chars=[“;”,“:”,“?”,“您可以使用正则表达式从字符串中删除任何字符或模式。此处需要删除的字符放在“[]”之间: import re str1 = "SN45000000001 40HX750_SEPT17 STOCK'';:??/?
税款金额价值=45000000001 SN 40HX750 SEPT17股票“;:??/
bad_chars=[“;”,“:”,“?”,“您可以使用正则表达式从字符串中删除任何字符或模式。此处需要删除的字符放在“[]”之间:
import re
str1 = "SN45000000001 40HX750_SEPT17 STOCK'';:??/?<."
str1 = re.sub('[;:/?<.\'"]', '', str1)
print(str1)
您必须将bad_chars
列为单独的字符:
bad_chars = [';',':','?','/','<','.']
test_string = 'N45000000001 40HX750_SEPT17 STOCK'';:??/?<.'
test_string = list(filter(lambda i: i not in bad_chars, test_string))
print(test_string)
bad_chars=[';'、':'、'?'、'/'、'Pandas str允许您替换不需要的字符。下面是一个如何仅使用Pandas来解决此问题的示例
import pandas as pd
df = pd.DataFrame({'Tax_Amount': ['SN45000000001 40HX750_SEPT17 STOCK'';:??/?<.']})
pattern = '[:;\?\.<\'/]' # I use \ to ignore characters that are used in regex :)
df['Tax_Amount_Clean'] = df['Tax_Amount'].str.replace(pattern, '').str.strip()
print(df)
将熊猫作为pd导入
df=pd.DataFrame({'Tax_Amount':['SN45000000001 40HX750_SEPT17 STOCK';:??/?这看起来您不知道[…]
实际上是这样。character类匹配任何单个字符,这些字符是类中枚举的字符之一。显然,没有必要多次指定任何字符。这将在任何地方替换这些字符,而不仅仅是在这个上下文中(我猜这是OP想要的,可能不是您相信的)。还有,你为什么要将“
添加到类中(两次)?@对不起,那是"写错了两次你仍然有三次?
。?/?
真的是文字吗,或者你的代码中的某些东西是如何表示一些无法打印的mojibake的?为什么以及如何首先添加这些垃圾?有没有办法避免在上游某个地方出现这种情况?你的一些注释尝试看起来几乎正确,但是很明显,这是一些不太灵巧的阅读文档的结果。
import re
str1 = "SN45000000001 40HX750_SEPT17 STOCK'';:??/?<."
str1 = re.sub('[;:/?<.\'"]', '', str1)
print(str1)
SN45000000001 40HX750_SEPT17 STOCK
bad_chars = [';',':','?','/','<','.']
test_string = 'N45000000001 40HX750_SEPT17 STOCK'';:??/?<.'
test_string = list(filter(lambda i: i not in bad_chars, test_string))
print(test_string)
import pandas as pd
df = pd.DataFrame({'Tax_Amount': ['SN45000000001 40HX750_SEPT17 STOCK'';:??/?<.']})
pattern = '[:;\?\.<\'/]' # I use \ to ignore characters that are used in regex :)
df['Tax_Amount_Clean'] = df['Tax_Amount'].str.replace(pattern, '').str.strip()
print(df)