본문 바로가기
데이터분석/Pandas

[Python] Pandas : Dataframe 함수 - replace()

by 코듀킹 2024. 6. 9.

pandas 라이브러리에서 DataFrame의 특정 열의 값을 다른 값으로 대체하기 위해 replace() 메서드를 사용할 수 있습니다. df['A'].replace()는 DataFrame df의 'A' 열에 대한 대체 작업을 수행합니다.

 

replace() 메서드의 문법은 다음과 같습니다:

 

DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')

 

 

여기서 df['A']에 대해서 replace()를 사용할 때 주로 사용되는 인수는 to_replace, value, inplace입니다. 예제는 이들을 중심으로 설명하겠습니다.

 

주요 인수

  • to_replace: 교체하려는 값입니다. 단일 값, 리스트, 딕셔너리, 혹은 정규 표현식일 수 있습니다.
  • value: to_replace 값을 교체할 값입니다. to_replace와 동일한 타입이어야 합니다.
  • inplace: Boolean 값입니다. True로 설정하면 DataFrame을 직접 수정하고, False이면 수정된 DataFrame의 사본을 반환합니다. 기본값은 False입니다.
  • method='pad' 또는 'ffill'로 설정하면, 결측치(NaN)를 바로 앞의 값으로 채우게 됩니다. 'bfill'로 설정하면 뒤의 값으로 채웁니다.
  • limit=2로 설정하면, 최대 두 개의 결측치만 앞의 값으로 채우게 됩니다.

참고로, to_replace와 value 인자를 생략할 수도 있습니다.

 

예제

1. 단일 값 교체

import pandas as pd

# 예제 데이터프레임 생성
data = {'A': [1, 2, 3, 4, 5]}
df = pd.DataFrame(data)

# 'A' 열에서 값 1을 99로 교체
df['A'].replace(1, 99, inplace=True)

# 또는 df['A'].replace(to_replace=1, value=99, inplace=True)

2. 여러 값 교체

# 'A' 열에서 값 1을 99로, 값 2를 100으로 교체
df['A'].replace({1: 99, 2: 100}, inplace=True)

# 또는 df['A'].replace(to_replace=[1,2], value=[99,100], inplace=True)

3. 리스트를 사용한 교체

# 'A' 열에서 값 1, 2, 3을 각각 10, 20, 30으로 교체
df['A'].replace([1, 2, 3], [10, 20, 30], inplace=True)

4. 정규 표현식을 사용한 교체

# 예제 데이터프레임 생성
data = {'A': ['1', '2', '13', '21', '31']}
df = pd.DataFrame(data)

# 정규 표현식을 사용하여 '1'을 'one'으로 교체
df['A'] = df['A'].replace(r'1', 'one', regex=True)

참고로, 여기서 regex=Flase로 설정하면 아래와 같은 결과가 나오게 된다.

5. NaN 값 교체

import numpy as np

# 예제 데이터프레임에 NaN 값 포함
data = {'A': [1, 2, np.nan, 4, 5]}
df = pd.DataFrame(data)

# NaN 값을 0으로 교체
df['A'].replace(np.nan, 0, inplace=True)

 

이와 같이 replace() 메서드를 사용하여 DataFrame의 특정 열의 값을 손쉽게 대체할 수 있습니다.

 

 

참고

댓글