Pandas: 사전을 사용하여 nan 값을 채우는 방법


fillna() 함수를 사전과 함께 사용하여 다른 열의 값을 기반으로 pandas DataFrame의 한 열에 있는 NaN 값을 바꿀 수 있습니다.

이를 위해 다음 기본 구문을 사용할 수 있습니다.

 #define dictionary
dict = {' A ': 5 , ' B ': 10 , ' C ': 15 , ' D ': 20 }

#replace values in col2 based on dictionary values in col1
df[' col2 '] = df[' col2 ']. fillna (df[' col1 ']. map (dict))

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: 사전을 사용하여 Pandas에 NaN 값 채우기

다양한 소매점의 판매 정보가 포함된 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'C', 'D', 'C', 'B', 'D'],
                   ' sales ': [12, np.nan, 30, np.nan, 24, np.nan, np.nan, 13]})

#view DataFrame
print (df)

  blind sales
0 to 12.0
1 A NaN
2 B 30.0
3 C NaN
4 D 24.0
5CNaN
6BNaN
7 D 13.0

Sales 열에는 NaN 값이 여러 개 있습니다.

store 열의 특정 값에 해당하는 값을 사용하여 sales 열에 이러한 NaN을 채우고 싶다고 가정해 보겠습니다.

이를 위해 다음 구문을 사용할 수 있습니다.

 #define dictionary
dict = {' A ': 5 , ' B ': 10 , ' C ': 15 , ' D ': 20 }

#replace values in sales column based on dictionary values in store column
df[' sales '] = df[' sales ']. fillna (df[' store ']. map (dict))

#view updated DataFrame
print (df)

  blind sales
0 to 12.0
1 A 5.0
2 B 30.0
3C 15.0
4 D 24.0
5C 15.0
6 B 10.0
7 D 13.0

우리는 사전을 사용하여 sales 열을 다음과 같이 대체했습니다.

  • 매장이 A 인 경우 Sales 의 NaN을 값 5 로 바꿉니다.
  • 매장이 B 인 경우 매출의 NaN을 값 10 으로 바꿉니다.
  • store가 C 이면 sales 의 NaN을 값 15 로 바꿉니다.
  • 매장이 D 인 경우 매출의 NaN을 값 20 으로 바꿉니다.

fillna() 함수에 대한 전체 온라인 설명서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

팬더에서 누락된 값을 계산하는 방법
Pandas에서 NaN 값이 있는 행을 삭제하는 방법
Pandas에서 특정 값이 포함된 행을 삭제하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다