반응형
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1':[10, 20, 10, 20, 30, 40],
'col2': ['US', 'BR','JP', 'KR', 'JP', np.nan]}
)
dic = { 'US':"US10YT=RR"
, 'GB':"GB10YT=RR"
, 'KR':"KR10YT=RR"
, 'BR': 'BR10YT=RR'
, 'JP': 'JP10YT=RR'}
df
col1 col2
0 10 US
1 20 BR
2 10 JP
3 20 KR
4 30 JP
5 40 NaN
방법 1.
df['col2'].apply(lambda x : x.replace(x, dic[x]))
방법 2.
df['col2'].apply(lambda x : dic[x])
방법 3. -> 선택
df['col2'].map(dic)
# 추가 활용 방법(NaN처리도 같이!)
df['col2'].map(dic).fillna(df['col1']) # 'col1' 컬럼의 값으로 NA 채움
df['col2'].map(dic).fillna(1) # 1로 NA 채움
방법1, 2의 경우에는 모두 동작하긴 했으나, 2가지 상황에서 에러가 발생
1) Dictionary에 있는 key가 존재하지 않을 경우,
2) NaN이 존재하는 경우
따라서 방법 3 짱
출처 : https://stackoverflow.com/questions/20250771/remap-values-in-pandas-column-with-a-dict
반응형
'Development > Python' 카테고리의 다른 글
[Python] Numa Node 0 에러 메세지 해결 (0) | 2021.09.30 |
---|---|
[Python] 오늘 날짜, 영업일 계산(Business day, Working day), 두 날짜 사이의 리스트, 달의 마지막 날 출력하기 (2) | 2021.09.30 |
[Python] Pandas Dataframe 중복제거하기 (0) | 2021.09.29 |
[Linux / Python] Nvidia Driver, CUDA, Tensorflow Version Compatibility 맞추기 (버전 호환성 맞추기) (0) | 2021.09.07 |
[Linux / Python] 가상환경에 텐서플로 설치 (0) | 2021.09.07 |
댓글