기존 열을 조건에 따라 수정하면서 동시에 새로운 열도 추가하는 효율적인 연속 메서드(chain method)
질문 출처:
인풋 생성
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:
유튜브에서 판다스 강의 중입니다
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 집계 함수 (0) | 2024.10.21 |
---|---|
[pandas] 수학적 연산 (2) | 2024.10.20 |
[pandas] 기존 데이터 프레임의 상위 2행을 멀티 인덱스로 설정하기 (0) | 2024.05.22 |
[pandas] 그룹의 순서를 유지하고 그룹 내에서 정렬하기 (0) | 2024.05.13 |
[pandas] 날짜가 속한 분기의 마지막 날 구하기 (0) | 2024.03.30 |