得到10位数

时间:2018-01-25 21:20:33

标签: python pandas dataframe

我正在尝试定义一个函数,该函数将创建一个列并将数字清除为十位数区域代码和数字。日期框架。

         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

1 个答案:

答案 0 :(得分:1)

您可以删除所有非数字并切片最后10位数字。

df.PNum1.str.replace('\D+', '').str[-10:]

0    8888888888
1    1999999999
2    1231243134
Name: PNum1, dtype: object