标签:数据结构 pre null net 数据 taf 存在 data otn
目的:
1.找到NaN值的位置(定位到哪一列、在列的哪个索引位置)
2.对NaN值进行填充(向上填充、向下填充、线性填充等)
3.忽略NaN值
构建简单的Dataframe数据结构环境
import pandas as pd import numpy as np #在df中nan和None都会被自动填充为NaN df=pd.DataFrame({‘a‘:[np.nan,1,2,3],‘b‘:[None,5,6,7],‘c‘:[8,9,10,11]}) print(df) ‘‘‘结果 a b c 0 NaN NaN 8 1 1.0 5.0 9 2 2.0 6.0 10 3 3.0 7.0 11 ‘‘‘
注意点
1.None、nan在构建dataframe数据结构中都会被识别为NaN
2.None与nan的类型是不一样的
#nan是个特殊的float类型 print(type(np.nan)) #<class ‘float‘> #None是NoneType print(type(None)) #<class ‘NoneType‘> #打印空值看输出结果 print(df[‘a‘][0]) #nan
目的1:查找NaN值
1.1 输出NaN值所在具体位置(调用math下面的isnan做判断)
from math import isnan for i in df.columns: # print(df[i].values) #[nan 1. 2. 3.] [nan 5. 6. 7.] [ 8 9 10 11] for k in range(len( df[i].values)): if isnan(df[i].values[k]): print(‘字段%s存在NaN值:‘ % i + ‘索引位置是:%s‘%k)
1.2 isnull、notnull
#1.2 isnull() isnull_res=df.isnull() print(isnull_res) ‘‘‘ a b c 0 True True False 1 False False False 2 False False False 3 False False False ‘‘‘
1.3 isnull().values
# 1.2 isnull().values isnull_res=df.isnull().values print(isnull_res) ‘‘‘ [[ True True False] [False False False] [False False False] [False False False]] ‘‘‘
1.4 isnull().sum() 统计显示
#1.4 isnull().sum() 统计 isnull_res=df.isnull().sum() print(isnull_res) ‘‘‘ a 1 b 1 c 0 dtype: int64 ‘‘‘
目的2:对NaN值填充
2.1 fillna直接填充
#1.fillna直接填充 df.fillna(0,inplace=True) print(df) ‘‘‘ a b c 0 0.0 0.0 8 1 1.0 5.0 9 2 2.0 6.0 10 3 3.0 7.0 11 ‘‘‘
标签:数据结构 pre null net 数据 taf 存在 data otn
原文地址:https://www.cnblogs.com/yangzhizong/p/10271179.html