Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas - replace() 메서드로 한 DataFrame의 값을 다른 DataFrame의 값으로 교체하기

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 옵션을 사용하지 않는 것이 좋습니다.