달나라 노트

Python Pandas : fillna (DataFrame에서 NaN값을 replace 하기) 본문

Python/Python Pandas

Python Pandas : fillna (DataFrame에서 NaN값을 replace 하기)

CosmosProject 2021. 1. 20. 20:57
728x90
반응형

 

 

DataFrame의 fillna는 DataFrame에 존재하는 NaN값을 어떠한 값으로 채워줍니다.

 

import pandas as pd
import numpy as np

dict_test = {
    'col1': [1, 2, np.nan, 4, np.nan],
    'col2': [np.nan, 'a', 'b', np.nan, 'z'],
}

df_test = pd.DataFrame(dict_test)
print(df_test)

df_filled = df_test.fillna('n')
print(df_filled)


- Output
   col1 col2
0   1.0  NaN
1   2.0    a
2   NaN    b
3   4.0  NaN
4   NaN    z

  col1 col2
0    1    n
1    2    a
2    n    b
3    4    n
4    n    z

위 예시를 보면 df_test DataFrame에는 NaN값이 있습니다.

그러나 fillna를 통해 df_filled DataFrame에는 NaN값이 모두 'n'으로 채워졌죠.

 

 

 

import pandas as pd
import numpy as np

dict_test = {
    'col1': [1, 2, np.nan, 4, np.nan],
    'col2': [np.nan, 'a', 'b', np.nan, 'z'],
}

df_test = pd.DataFrame(dict_test)
print(df_test)

df_test.loc[:,['col2']] = df_test.loc[:, ['col2']].fillna('n')
print(df_test)

- Output
   col1 col2
0   1.0  NaN
1   2.0    a
2   NaN    b
3   4.0  NaN
4   NaN    z

   col1 col2
0   1.0    n
1   2.0    a
2   NaN    b
3   4.0    n
4   NaN    z

또한 loc를 이용해서 일부 컬럼에만 fillna를 적용할 수도 있습니다.

위 예시를 보면 col2에 존재하는 NaN값만 'n'으로 채워졌음을 알 수 있죠.

 

 

 

 

 

 

 

728x90
반응형
Comments