본문 바로가기
판다스/판다스 팁

[pandas] 기존 열을 수정하면서 새로운 열도 추가하는 방법

by 김판다t 2024. 5. 22.

기존 열을 조건에 따라 수정하면서 동시에 새로운 열도 추가하는 효율적인 연속 메서드(chain method)

 

 

질문 출처:

 

https://stackoverflow.com/questions/78338987/more-efficient-way-to-replace-loc-method-with-chaining-in-pandas-dataframe-op

 

인풋 생성

 

import pandas as pd
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emma'],
    'Age': [25, 30, 35, 40, 45],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)

 

df

 

 

 

질문) 기존 열을 조건에 따라 수정하면서 동시에 새로운 열도 추가하는 효율적인 연속 메서드

 

 

Name이 Alice이고 City가 New York이면 Hamburg로 수정하려고 합니다.

그와 동시에 값이 A, B, C, D, E로 부여된 새로운 Group 열도 생성하려 합니다.

연속 메서드(chain method)로 효율적으로 처리하는 방법이 없나요?

 

 

답변

 

assign 함수를 사용하세요.

# 'City' 열이 'New York'이고 'Name' 열이 'Alice'인 조건을 생성
cond = df['City'].eq('New York') & df['Name'].eq('Alice')

out = df.assign(
    Group = ['A', 'B', 'C', 'D', 'E'],  # 새로운 Group 열 생성
    City = df['City'].mask(cond, 'Hamburg')  # cond가 참인 경우 'City'를 'Hamburg'로
)

 

out:

 

 

 

 

 

 

 


유튜브에서 판다스 강의 중입니다

 

https://www.youtube.com/@KimPandas