簡體   English   中英

從電話號碼的數據框列中刪除特殊字符

[英]Removing special characters from a dataframe column of phone numbers

我有一個數據幀df

Name    phone_number    status
john    8967894567      FC
john    8967894567      FC
john    7846897345      CL 
john    78.478954+89    FC
john    78.478954+89    FC
Ram     4598761458      FC
Ram     4598761458      FC
Kevin   15.478945+67    CL

我想更改它以獲得以下結果:

Name    phone_number    status
john    8967894567      FC
john    8967894567      FC
john    7846897345      CL 
john    7847895489      FC
john    7847895489      FC
Ram     4598761458      FC
Ram     4598761458      FC
Kevin   1547894567      CL

我試着像這樣使用re.sub

import re
df['phone_number'] = re.sub('[.+]', '', df['phone_number'])

但結果是:

Name    phone_number             status
john    0  0 8967894567\n1  1547894567  FC
john    0  0 8967894567\n1  1547894567  FC
john    0  0 7846897345\n1  1547894567  CL 
john    0  0 7847895489\n1   1547894567  FC
john    0  0 7847895489\n1   1547894567  FC
Ram     0  0 4598761458\n1  1547894567  FC
Ram     0  0 4598761458\n1  1547894567  FC
Kevin   0  0 1547894567\n1  1547894567  CL

我究竟做錯了什么?

不要使用re.sub ,它不適合使用數據幀。 使用str.replace代替它。

df.phone_number = df.phone_number.str.replace('[^\d]+', '')
df

    Name phone_number status
0   john   8967894567     FC
1   john   8967894567     FC
2   john   7846897345     CL
3   john   7847895489     FC
4   john   7847895489     FC
5    Ram   4598761458     FC
6    Ram   4598761458     FC
7  Kevin   1547894567     CL

模式[^\\d]+將匹配任何不是數字的東西,也就是刪除的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM