python 缺少值(NaN)检查
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 缺少值(NaN)检查相关的知识,希望对你有一定的参考价值。
## check percent of nan values in pandas df
def check_nans(DATA,col_total):
print('Shape:', DATA[col_total].shape)
nas = [x for x in DATA[col_total].columns.values if DATA[x].isnull().sum() > 0]
print('Cols with NAs:', len(nas))
if len(nas)>0:
for x in nas:
print(x, ':{:.2f}% of NAs'.format(DATA[x].isnull().sum()/float(len(DATA))*100))
return None
## check trend of holes (consecutive or not)
def check_trend_holes(DF,svar):
import matplotlib.pyplot as plt
import copy
# copy
AUX = copy.deepcopy(DF[[svar]])
# reset index
AUX.reset_index(drop=False, inplace=True)
AUX.reset_index(drop=False, inplace=True)
# filtering nan values
lindex = list(AUX[np.isnan(AUX[svar])].index)
AUX = AUX[AUX.index.isin(lindex)]
# check consecutive holes
AUX.loc[(AUX['index'].shift(-1) - AUX['index'] == 1) | (AUX['index'].shift(1) - AUX['index'] == -1), 'isconsecutive'] = True
# display results
stitle = 'Total holes = %s / Consecutive holes = %s / Non-Consecutive holes = %s'%(len(AUX),
len(AUX[AUX.isconsecutive==True]),
len(AUX[AUX.isconsecutive!=True]))
# plot
pd.isnull(DF[svar]).plot(figsize=(20,3))
plt.title(stitle,fontsize=22)
plt.xticks(rotation='horizontal', fontsize=16)
plt.show()
# clean
del(AUX)
# return
return None
以上是关于python 缺少值(NaN)检查的主要内容,如果未能解决你的问题,请参考以下文章
python如何检查数据框中的值是不是为nan [重复]
如何检查 NaN 值?
python 检查值是否为NaN
python中的NaN和有效性检查[重复]
数据框中现有值的 Python 条件 NaN 值替换
有效地检查 Python / numpy / pandas 中的任意对象是不是为 NaN?