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에서 특정 값이 포함된 행을 삭제하는 방법