Pandas DataFrame DataFrame.fillna() 함수
Suraj Joshi
2023년1월30일
Pandas
Pandas DataFrame
-
pandas.DataFrame.fillna()의 구문: -
예제 코드:
DataFrame.fillna()메서드로DataFrame의 모든NaN값 채우기 -
예제 코드:
method매개 변수가있는DataFrame.fillna()메서드 -
예제 코드:
limit매개 변수가있는DataFrame.fillna()메서드
pandas.DataFrame.fillna() 함수는DataFrame의NaN 값을 일정 값으로 대체한다.
pandas.DataFrame.fillna()의 구문:
DataFrame.fillna(
value=None, method=None, axis=None, inplace=False, limit=None, downcast=None
)
매개 변수
value |
scalar,dict,Series 또는DataFrame. NaN값을 대체하는 데 사용되는 값 |
method |
backfill,bfill,pad,ffill 또는None. NaN값을 채우는 데 사용되는 방법입니다. |
axis |
행(axis=0) 또는 열(axis=1)을 따라 누락 된 값 채우기 |
inplace |
부울. True이면 호출자DataFrame을 제자리에서 수정합니다. |
limit |
정수. method를 지정하면 앞으로 / 뒤로 채울 연속NaN 값의 최대 개수입니다. method를 지정하지 않으면 채울 축의NaN의 최대 개수입니다. |
downcast |
사전. 데이터 유형의 다운 캐스트를 지정합니다. |
반환
inplace가True이면 모든NaN 값을 주어진value로 대체하는DataFrame; 그렇지 않으면 None.
예제 코드: DataFrame.fillna()메서드로DataFrame의 모든NaN 값 채우기
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(5)
print("Filled DataFrame:")
print(filled_df)
출력:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 5.0
2 3.0 8.0
3 5.0 5.0
4 3.0 3.0
DataFrame의 모든NaN 값을pandas.DataFrame.fillna()메소드에서 인수로 제공된5로 채 웁니다.
평균이있는DataFrame.fillna()
열의 NaN값을 해당 열의 평균으로 바꾸는 것도 좋은 생각입니다.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(df.mean(),inplace=True)
print("Filled DataFrame:")
print(df)
출력:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.00 4.0
1 2.00 5.0
2 3.00 8.0
3 2.25 5.0
4 3.00 3.0
X열의 NaN값은 X열의 평균으로, Y열의 NaN값은 Y열의 평균으로 채 웁니다.
inplace = True로 인해fillna()함수 호출 후 원본DataFrame이 수정됩니다.
DataFrame.fillna() 및0
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
df.fillna(0,inplace=True)
print("Filled DataFrame:")
print(df)
출력:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 0.0
2 3.0 8.0
3 0.0 0.0
4 3.0 3.0
모든NaN을0으로 채 웁니다.
예제 코드: method 매개 변수가있는DataFrame.fillna()메서드
method매개 변수의 다른 선택 사항을 사용하여 DataFrame의 NaN값을 채울 수도 있습니다.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2, 3, np.nan, 3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(method="backfill")
print("Filled DataFrame:")
print(filled_df)
출력:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 3.0 8.0
3 NaN NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 8.0
2 3.0 8.0
3 3.0 3.0
4 3.0 3.0
method = "backfill"을 설정하면DataFrame의 모든NaN 값이 동일한 열의NaN 값 뒤의 값으로 채워집니다.
bfill,pad 및ffill 메서드를 사용하여DataFrame의NaN 값을 채울 수도 있습니다.
method |
기술 |
|---|---|
backfill /bfill |
DataFrame의 모든 NaN값을 동일한 열의 NaN값 뒤의 값으로 채 웁니다. |
ffill /pad |
DataFrame의 모든 NaN값을 동일한 열의 NaN값 앞의 값으로 채 웁니다. |
예제 코드: limit 매개 변수가있는DataFrame.fillna()메서드
DataFrame.fillna()메서드의limit 매개 변수는 메서드가 채울 연속NaN 값의 최대 개수를 제한합니다.
import pandas as pd
import numpy as np
df = pd.DataFrame({'X': [1, 2,np.nan, 3,3],
'Y': [4, np.nan, 8, np.nan, 3]})
print("DataFrame:")
print(df)
filled_df = df.fillna(3,limit=1)
print("Filled DataFrame:")
print(filled_df)
출력:
DataFrame:
X Y
0 1.0 4.0
1 2.0 NaN
2 NaN 8.0
3 3.0 NaN
4 3.0 3.0
Filled DataFrame:
X Y
0 1.0 4.0
1 2.0 3.0
2 3.0 8.0
3 3.0 NaN
4 3.0 3.0
여기서 NaN이 열에 채워지면 같은 열에있는 다른 NaN값은 그대로 유지됩니다.
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
작가: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn