본문 바로가기
Python/Python FAQ

Python 판다스 열의 값을 사전으로 다시 매핑하고 NaN을 보존합니다., Remap values in pandas column with a dict, preserve NaNs

by 베타코드 2023. 9. 16.
반응형

질문


다음과 같은 딕셔너리가 있습니다: di = {1: "A", 2: "B"}

이를 다음과 같은 데이터프레임의 col1 열에 적용하고 싶습니다:

     col1   col2
0       w      a
1       1      2
2       2    NaN

다음과 같이 결과를 얻고 싶습니다:

     col1   col2
0       w      a
1       A      2
2       B    NaN

어떻게 가장 잘 할 수 있을까요?


답변


.replace를 사용할 수 있습니다. 예를 들어:

>>> df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}})
>>> di = {1: "A", 2: "B"}
>>> df
  col1 col2
0    w    a
1    1    2
2    2  NaN
>>> df.replace({"col1": di})
  col1 col2
0    w    a
1    A    2
2    B  NaN

또는 Series에서 직접 사용할 수 있습니다. 즉, df["col1"].replace(di, inplace=True)입니다.

반응형

댓글