pandas 处理数据中NaN数据

时间:2021-06-29 07:15:15

使用dropna()函数去掉NaN的行或列

import pandas as pd
import pickle
import numpy as np
dates = pd.date_range('', periods=)
df = pd.DataFrame(np.arange().reshape((,)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[,]=np.nan
df.iloc[,]=np.nan
print(df)
print(df.dropna(axis=,how='any'))

输出:

             A     B     C   D
-- NaN 2.0
-- 5.0 NaN
-- 9.0 10.0
-- 13.0 14.0
-- 17.0 18.0
-- 21.0 22.0
A B C D
-- 9.0 10.0
-- 13.0 14.0
-- 17.0 18.0
-- 21.0 22.0

使用fillna()函数替换NaN值

import pandas as pd
import pickle
import numpy as np
dates = pd.date_range('', periods=)
df = pd.DataFrame(np.arange().reshape((,)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[,]=np.nan
df.iloc[,]=np.nan
print(df)
#将NaN值替换为0
print(df.fillna(value=))

输出

             A     B     C   D
-- NaN 2.0
-- 5.0 NaN
-- 9.0 10.0
-- 13.0 14.0
-- 17.0 18.0
-- 21.0 22.0
A B C D
-- 0.0 2.0
-- 5.0 0.0
-- 9.0 10.0
-- 13.0 14.0
-- 17.0 18.0
-- 21.0 22.0

使用isnull()函数判断数据是否丢失

import pandas as pd
import pickle
import numpy as np
dates = pd.date_range('', periods=)
df = pd.DataFrame(np.arange().reshape((,)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[,]=np.nan
df.iloc[,]=np.nan
print(df)
#矩阵用布尔来进行表示 是nan为ture 不是nan为false
print(pd.isnull(df))

输出

             A     B     C   D
-- NaN 2.0
-- 5.0 NaN
-- 9.0 10.0
-- 13.0 14.0
-- 17.0 18.0
-- 21.0 22.0
A B C D
-- False True False False
-- False False True False
-- False False False False
-- False False False False
-- False False False False
-- False False False False

#判断数据中是否会存在NaN值

import pandas as pd
import pickle
import numpy as np
dates = pd.date_range('', periods=)
df = pd.DataFrame(np.arange().reshape((,)), index=dates, columns=['A', 'B', 'C', 'D'])
df.iloc[,]=np.nan
df.iloc[,]=np.nan
print(df)
#判断数据中是否会存在NaN值
print(np.any(df.isnull()))

输出

             A     B     C   D
-- NaN 2.0
-- 5.0 NaN
-- 9.0 10.0
-- 13.0 14.0
-- 17.0 18.0
-- 21.0 22.0
True