2017-11-24 4 views
1

나는 dataframe 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 

내가 뭘 잘못하고 있니?

답변

2

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]+은 숫자가 아니며 제거되는 문자와 일치합니다.

+0

나를 도왔다. 이런 상황에서 파이썬으로 데이터를 정리하는 페이지 나 튜토리얼을 제안 해 줄 수 있습니까? – danishxr

+0

@danishxr 죄송합니다 ... 공식 문서 외에는 아무것도 알지 못합니다. https://pandas.pydata.org/pandas-docs/stable/text.html#text-string-methods –