2017-04-01 2 views
4

이름 목록이있는 열이있는 거대한 DataFrame이 있습니다. 이름에는 숫자와 대괄호가 붙어 있습니다. 나는 그 (것)들을 이름에서 제거하기 위하여 분석하고있다.팬더 : 바꾸기 함수 구문

df.Name = df.Name.str.replace(r'[\(\)\d]+', '') 

은 누군가가 나를 대신 함수 내에서 구문을 이해하는 데 도움이 시겠어요 :이 작동 할 방법이 발견?

(r'[\(\)\d]+', '') 
+2

는 그것은 이러한 문자를 제거하도록 빈 문자열마다'('')'와 숫자 ('0'으로'을 9') 대체하는 정규 표현식입니다. –

답변

5

누군가가 나를 대신 함수 내에서 구문을 이해하는 데 도움이 시겠어요?

정규식이 표시됩니다. 정규 표현식에는 패턴을 지정하는 특수 구문이 있습니다. 이것으로

[...]문자 그룹 수단 정규식. 여기에있는 문자 그룹은 \( (열린 대괄호), \) (닫는 대괄호) 및 \d (자릿수)으로 채워집니다.

끝에 +

의미 "하나 이상의" 그래서 우리는 패턴이 순서 문자 그룹의 문자에서 구성되어 있음을 지정합니다. 따라서 '142(2'과 같은 문자열은 정규식과 일치합니다.

당신은 빈 문자열에 의한 패턴 일치, 당신이을 제거 있도록하는 문자열에있는 모든 문자열을 대체합니다.

, 구축, 테스트 및 정규 표현식에 문제를 해결하는 유용한 도구는 regex101입니다. 링크를 따라 가면 정규식을 지정하고 설명 된 패턴과 일치하는 문자열을 볼 수 있습니다. 오른쪽에는 자연 언어로 패턴이 무엇을하는지 설명하는 것을 목표로하는 패널이 있습니다.

는 또한 정규식의 구조를 보여줍니다이 regex visualizer가 :

visualization of the regex

당신이 목적지에 도달 할 때까지 당신이 그렇게 여기에 우리가 통해 순환을 유지할 수 있습니다, 철도를 따를 수있는 경우 문자열은 "일치" 회색 상자는 열린 브래킷, 닫는 브래킷 또는 숫자가있는 한 우리가 마무리를 결정할 때까지 계속됩니다.

+1

그런 자세한 설명에 감사드립니다. 내가 제공 한 링크를 살펴 보겠습니다. :) – Kishaan92