AI & 파이썬

파이썬(python) / Pandas Dataframe에서 특정 컬럼(column)의 값 바꾸기 (치환) - 아과노트

아과노트 2023. 2. 27. 15:38
728x90
반응형

부제:  df['column'] = df['column'].str.replace(org_value, replace_value)

 

안녕하세요, 아과입니다.

 

파이썬 로고

 

오늘은 데이터 프레임(Dataframe)에서 특정 값이 포함된 값을 바꾸는 방법에 대해서 알아보겠습니다.

 

오늘의 글은 다음순서로 진행됩니다.

  1. example.xls 읽어오기
  2. 특정 문자열 바꾸기(정확히 일치): df['column'] = df['column'].replace(org_value, replace_value)
  3. 특정 문자열 바꾸기(포함 일치) : df['column'] = df['column'].str.replace(org_value, replace_value)

 

예제파일은 다음과 같습니다.

 

 

이전에 dataframe에서 특정값 바꾸는 작업을 진행했었습니다.

 

2023.02.26 - [파이썬] - 파이썬(python) / Pandas Dataframe에서 특정 값 바꾸기 / Null 처리(df.replace) / DB에 NULL 입력 - 아과노트

 

파이썬(python) / Pandas Dataframe에서 특정 값 바꾸기 / Null 처리(df.replace) / DB에 NULL 입력 - 아과노트

부제: df.replace("-", np.NAN, inplace=True) 안녕하세요, 아과입니다. 오늘은 데이터 프레임(Dataframe)에서 특정 값을 바꾸거나 Null 처리하는 방법을 알아보도록 하겠습니다. 오늘의 글은 다음순서로 진행

alphalok.tistory.com

 

오늘은 Dataframe에서 특정 칼럼의 값을 일괄 변환해야 할 때 쓰는 함수를 알아보도록 하겠습니다.

 

1. example.xls 읽어오기

이번에도 엑셀파일 읽어오기부터 시작하겠습니다.

import pandas as pd
df = pd.read_excel("example.xlsx", engine='openpyxl')
print(df)

example.xlsx파일의 값들을 데이터 프레임(dataframe)인 df로 담아왔습니다.

 

여기서 오늘은 특정 컬럼의 값을 변경하는 부분을 알아보겠습니다.

 

2. 특정 컬럼의 특정 값 바꾸기(정확히 일치) : df['column'] = df['column'].replace(org_value, replace_value)

 

일단 컬럼의 특정값을 변경하는 것은 아래와 같습니다.

 

df['column'] = df['column'].replace(org_value, replace_value)

 

이렇게 예를 들면  블로그명의 컬럼의 값 중에  "아과노트"를 "아과"로 바꿀경우는 아래와 같이 하면 됩니다.

 

df['블로그명'] = df['블로그명'].replace('아과노트', '아과')

 

3. 특정 컬럼의 특정 값 바꾸기(포함 일치) : df['column'] = df['column'].str.replace(org_value, replace_value)

 

문제는 우리가 보통 치환을 할 때는 주로 "AA"값이 포함된 경우 "AA"를 "BB"로 바꾸라라는 식으로 많이 사용하게 됩니다.

예제에서는 "펀드명" 컬럼에서 "주식형"이란 글자는 "주식"으로 바꾸라 라는 식입니다.

여기서는 단순히 df['column'].replace를 사용하면 문자열이 정확히 일치해야 변경이 되기 때문에 동작을 하지 않습니다.

 

df['펀드명'] = df['펀드명'].replace('주식형', '주식')

df['column'].replace
주식형 -> 주식으로 치환을 시도했으나 df['column'].replace는 정확히 일치하지 않기 때문에 변경되지 않습니다.

이럴때는 간단하게 df['column'].str.replace(org_value, replace_value) 을 사용하면 됩니다.
차이점은 중간에 str이 들어간 것입니다.

df['column'].str.replace
주식형 -> 주식으로 치환을 시도할 때는 df['column'].str.replace을 사용하여 변경합니다.

그러면 기존에 "주식형"으로 되어있던 데이터가 "주식"으로 변경된 것을 볼 수 있습니다.

 

오늘도 고생하셨습니다.

 

728x90
반응형