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의 특정 열의 값을 손쉽게 대체할 수 있습니다.
참고
'데이터분석 > Pandas' 카테고리의 다른 글
[Python] Pandas : Dataframe 함수 - concat() (0) | 2024.09.29 |
---|---|
[Python] Pandas : Dataframe 함수 - merge() (0) | 2024.08.16 |
[Python] Pandas : DataFrame 함수 - loc, iloc (0) | 2024.08.11 |
[Python] Pandas : Dataframe 함수 - groupby() 사용법 (0) | 2024.07.27 |
[Python] Pandas : Dataframe 함수 - reset_index() (0) | 2024.06.09 |
댓글