从字符串中擦洗非数字字符

时间:2019-09-30 23:04:42

标签: python regex python-3.x

我是Python的新手,目前正在(尝试)编写一个程序来清除csv中的数据。我有要在数据框中清除的数据(请参见下面的代码)。

import pandas as pd
import numpy as np
import re

filepath = "C:/Users/Desktop/Tester.csv"
df = pd.read_csv(filepath)

non_alpha = ['Member_Zip'
             ,'Member_Phone_Primary'
             ,'Member_Phone_Secondary']

for remove in non_alpha:
    df[remove] = [re.sub(r'[^0-9]','',str(x)) for x in df[remove]]

RegEx是我遇到问题的地方。在Tester.csv中,我在"a9[1*0&9.21645""(123) 456-7890""(012)345- 6789"字段中分别具有Member_ZipMember_Phone_PrimaryMember_Phone_Secondary的值。当我运行该程序时,删除非数字字符的循环对于电话号码字段非常适用,但对我的邮政编码字段则不适用。我对这种情况感到困惑。当我调用dtypes函数时,所有字段都被列为字符串。任何见识将不胜感激。

谢谢!

0 个答案:

没有答案