Pandas 영숫자 분리

1 개요[ | ]

Pandas 영숫자 분리

2 위치로 분리[ | ]

  • 문자열의 길이가 일정한 경우
  • 정규식 방식에 비해 성능이 좋다.
  • 자료형을 지정하기도 좋다.
import pandas as pd
df = pd.DataFrame(['aaa10','aaa20','bbb100','bbb200'], columns=['product'])
df
import numpy as np
df['product_code'] = df['product'].str[0:3]
df['product_number'] = df['product'].str[3:].astype(np.uint8)
df

3 정규식으로 분리[ | ]

  • 정규식을 사용하면 비교적 복잡한 구조를 잘 분리할 수 있다.

3.1 예시 1[ | ]

import pandas as pd   
df = pd.DataFrame(['apple100','apple200','banana100','banana200'], columns=['product']) 
df
temp = df['product'].str.extractall('([a-zA-Z]+)([0-9]+)').unstack()
temp.columns=['fruit','number']
df[temp.columns] = temp
df

3.2 예시 2[ | ]

import pandas as pd   
df = pd.DataFrame(['MSFT220121C00180000','MSFT220121C00185000','MSFT220121C00200000'], columns=['contract']) 
df
temp = df['contract'].str.extractall('([a-zA-Z]+)([0-9]+)').unstack().sort_index(level=1,axis=1)
temp.columns=['ticker','date','type','series']
df[temp.columns] = temp
df

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}