Pandas에서 한 DataFrame의 특정 값을 다른 DataFrame의 값으로 교체하려면 replace() 메서드를 사용하면 됩니다. 이 메서드는 지정한 기존 값을 찾아 새로운 값으로 대체해 주는 아주 간편한 도구입니다.
1단계: 첫 번째 DataFrame 생성
먼저 예제에 사용할 첫 번째 DataFrame을 만들어 보겠습니다.
dataFrame1 = pd.DataFrame({"Car": ["Audi", "Lamborghini"], "Place": ["US", "UK"], "Units": [200, 500]})2단계: 두 번째 DataFrame 생성
이어서 값을 교체할 대상인 두 번째 DataFrame을 생성합니다.
dataFrame2 = pd.DataFrame({"Car": ["BMW", "Lexus"], "Place": ["India", "Australia"], "Units": [800, 1000]})3단계: 교체할 값 가져오기
두 번째 DataFrame에서 교체할 원래 값을 추출하고, 첫 번째 DataFrame에서 새로 사용할 값을 가져옵니다.
# 두 번째 DataFrame에서 값 가져오기 i = dataFrame2['Car'][1] # 첫 번째 DataFrame의 값으로 교체 j = dataFrame1['Car'][0]
4단계: replace() 메서드로 값 교체
마지막으로 replace() 메서드를 호출하여 두 번째 DataFrame의 값을 첫 번째 DataFrame의 값으로 바꿉니다.
dataFrame2 = dataFrame2.replace(i, j)
전체 예제 코드
지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.
import pandas as pd
dataFrame1 = pd.DataFrame({"Car": ["Audi", "Lamborghini"], "Place": ["US", "UK"], "Units": [200, 500]})
print("Dataframe 1...")
print(dataFrame1)
dataFrame2 = pd.DataFrame({"Car": ["BMW", "Lexus"], "Place": ["India", "Australia"], "Units": [800, 1000]})
print("\nDataframe 2...")
print(dataFrame2)
# 두 번째 DataFrame에서 값 가져오기
i = dataFrame2['Car'][1]
# 첫 번째 DataFrame의 값으로 교체
j = dataFrame1['Car'][0]
# 한 DataFrame의 값을 다른 DataFrame의 값으로 교체
dataFrame2 = dataFrame2.replace(i, j)
# 업데이트된 DataFrame 출력
print("\nUpdated Dataframe 2...")
print(dataFrame2)실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Dataframe 1...
Car Place Units
0 Audi US 200
1 Lamborghini UK 500
Dataframe 2...
Car Place Units
0 BMW India 800
1 Lexus Australia 1000
Updated Dataframe 2...
Car Place Units
0 BMW India 800
1 Audi Australia 1000출력 결과를 보면 두 번째 DataFrame의 'Car' 열에 있던 'Lexus'가 첫 번째 DataFrame의 'Audi'로 성공적으로 교체된 것을 확인할 수 있습니다.
참고 사항
replace() 메서드는 DataFrame 전체를 탐색하면서 일치하는 모든 값을 교체합니다. 특정 열만 대상으로 하려면 dataFrame2['Car'].replace(i, j)처럼 해당 열에 직접 적용할 수도 있습니다. 또한 원본 DataFrame을 변경하지 않으려면 inplace=True 옵션을 사용하지 않는 것이 좋습니다.