본문 바로가기
Development/Python

[Python] Pandas Dataframe 내 정규표현식 반영 문자열 추출

by 성딱이 2021. 10. 7.
반응형

To do : 데이터프레임 내 '자산' 컬럼의 내용 중 알파벳으로 이뤄진 키워드만 추출해서 남기고자 함

How to : Pandas 의 함수인 extract 사용 (pandas.Series.str.extract)

DataFrame['col1'] = DataFrame['col1'].str.extract(r'(reg_express)')

 

레스고

 

1. 데이터프레임 준비

In [59]:

bithumb
Out[59]:
  자산 실시간 시세 변동률 거래금액(24H) 시가총액? 입금 출금 차트 거래
0 비트코인BTC/KRW 61,446,000 원 +1,003,000 원?(+1.66 %) ? 273,531,391,383 원 1149조 0126억 NaN NaN NaN NaN
1 도지코인?DOGE/KRW 297.1 원 -3.2 원?(-1.07 %) ? 163,453,697,627 원 39조 3146억 NaN NaN NaN NaN
2 리플?XRP/KRW 1,239 원 -45 원?(-3.50 %) ? 124,562,305,468 원 57조 8444억 NaN NaN NaN NaN
3 이더리움ETH/KRW 4,088,000 원 -72,000 원?(-1.73 %) ? 122,881,484,003 원 479조 9978억 NaN NaN NaN NaN
4 제노토큰XNO/KRW 86.76 원 -7.61 원?(-8.06 %) ? 92,234,088,037 원 - NaN NaN NaN NaN

 

2. 예제 적용 
 
In [60]:
bithumb['자산'] = bithumb['자산'].str.extract(r'([A-Z]+)')
bithumb

Out[60]:

  자산 실시간 시세 변동률 거래금액(24H) 시가총액? 입금 출금 차트 거래
0 BTC 61,446,000 원 +1,003,000 원?(+1.66 %) ? 273,531,391,383 원 1149조 0126억 NaN NaN NaN NaN
1 DOGE 297.1 원 -3.2 원?(-1.07 %) ? 163,453,697,627 원 39조 3146억 NaN NaN NaN NaN
2 XRP 1,239 원 -45 원?(-3.50 %) ? 124,562,305,468 원 57조 8444억 NaN NaN NaN NaN
3 ETH 4,088,000 원 -72,000 원?(-1.73 %) ? 122,881,484,003 원 479조 9978억 NaN NaN NaN NaN
4 XNO 86.76 원 -7.61 원?(-8.06 %) ? 92,234,088,037 원 - NaN NaN NaN NaN

 

데이터프레임 내 '자산' 컬럼에 대해서 알파벳 키워드만 잘 추출이 되었다.

마찬가지로 원하고자 하는 정규표현식을 사용하여 원하는 키워드를 추출해서 사용할 수 있도록 하자!

 

 

* 주의 할 점 :정규표현식 자체가 하나의 그룹화가 되어야 하기 때문에 소괄호로 정규표현식을 묶어야 함

그렇지 않다면 다음과 같은 에러가 발생 할 것.

ValueError: pattern contains no capture groups
Process finished with exit code 1​

 

끄읏

 

참고 : https://pandas.pydata.org/docs/reference/api/pandas.Series.str.extract.html

 

pandas.Series.str.extract — pandas 1.3.3 documentation

Flags from the re module, e.g. re.IGNORECASE, that modify regular expression matching for things like case, spaces, etc. For more details, see re.

pandas.pydata.org

 

 

 

반응형

댓글