我正在尝试定义一个函数,该函数将创建一个列并将数字清除为十位数区域代码和数字。日期框架。
PNum1
0 18888888888
1 1999999999
2 +++(112)31243134
我拥有所有单独的功能,甚至将它们存储到DataFrame和Dictionary中。
def GetGoodNumbers(col):
column = col.copy()
Cleaned = column.replace('\D+', '', regex=True)
NumberCount = Cleaned.astype(str).str.len()
FirstNumber = Cleaned.astype(str).str[0]
SummaryNum = {'Number':Cleaned,'First':FirstNumber,'Count':NumberCount}
df = pd.DataFrame(data=SummaryNum)
DecentNumbers = []
return df
返回
Count First Number
0 11 1 18888888888
1 10 3 3999999999
2 11 2 11231243134
如何遍历数据框列并返回一个新列: - 删除所有非数字。 - 长度(通常为10或11) - 如果长度为11,则返回正确的10位数。
所需的输出:
number
1231243134
1999999999
8888888888
答案 0 :(得分:1)
您可以删除所有非数字并切片最后10位数字。
df.PNum1.str.replace('\D+', '').str[-10:]
0 8888888888
1 1999999999
2 1231243134
Name: PNum1, dtype: object