正文:
将字典创建为DataFrame
#将字典创建为DataFramedata_dict={"Grammer":["Python","C","Java","GO",np.nan,"SQL","PHP","python"],"Score":[1,2,np.nan,4,5,6,7,10]}data = pd.DataFrame(data_dict)data

需求描述
1.数值列 空值添补;
2.空值的上一行与下一行的均匀数进行添补
数据理解
1.根据数据可得数据列为Score;
2.数值列Score处于第三行,个中第二行Score值为2,第三行Score为4,则空值的上一行与下一行的均匀数是(2+4)/2=3
代码实现
data['Score']=data['Score'].fillna(data['Score'].interpolate())data
题外:
缺失落数据添补fillna()利用
函数形式:fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, kwargs)
参数:
value:用于添补的空值的值。method: {'backfill', 'bfill', 'pad', 'ffill', None}, default None。定义了添补空值的方法, pad / ffill表示用前面行/列的值,添补任前行/列的空值, backfill / bfill表示用后面行/列的值,添补任前行/列的空值。axis:轴。0或'index',表示按行删除;1或'columns',表示按列删除。inplace:是否原地更换。布尔值,默认为False。如果为True,则在原DataFrame上进行操作,返回值为None。limit:int, default None。如果method被指定,对付连续的空值,这段连续区域,最多添补前 limit 个空值(如果存在多段连续区域,每段最多添补前 limit 个空值)。如果method未被指定, 在该axis下,最多添补前 limit 个空值(不论空值连续区间是否间断)downcast:dict, default is None,字典中的项为,为类型向下转换规则。或者为字符串“infer”,此时会在得当的等价类型之间进行向下转换,比如float64 to int64 if possible。示例1.将Score列空值添补为0
data['Score']=data['Score'].fillna(0)data
2.用前面行的值,添补任前行的值
data['Score'].fillna(method='pad')
3.backfill / bfill表示用后面行/列的值,添补任前行/列的空值
data['Score']=data['Score'].fillna(method='backfill')data
DataFrame.interpolate(method=‘linear’, axis=0, limit=None, inplace=False, limit_direction=None, limit_area=None, downcast=None, kwargs)
method : str,默认为‘linear’,利用插值技能。之一:‘linear’:忽略索引,并将值等距地对待。这是MultiIndexes支持的唯一方法。‘time’: 处理逐日和更高分辨率的数据,以内插给定的韶光间隔长度。‘index’, ‘values’: 利用索引的实际数值。'pad':利用现有值填写NaN。‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘spline’, ‘barycentric’, ‘polynomial’: 通报给 scipy.interpolate.interp1d。这些方法利用索引的数值。‘polynomial’ 和 ‘spline’ 都哀求您还指定一个顺序(int),例如 ,df.interpolate(method='polynomial', order=5)'krogh','piecewise_polynomial','spline','pchip','akima':环抱类似名称的SciPy插值方法。请参阅注释。axis : {0或'index',1或'columns',None},默认为None,沿轴进行interpolate。
limit : 整数,可选,要添补的连续NaN的最大数量。必须大于0。
inplace : bool,默认为False尽可能更新数据。
limit_direction : {'forward','backward','both'},默认为'forward',如果指定了限定,则将沿该方向添补连续的NaN。
limit_area : {None, ‘inside’, ‘outside’}, 默认为None,如果指定了限定,则连续的NaN将添补此限定。None:无添补限定。‘inside’:仅添补有效值(interpolate)包围的NaN。‘outside’: 仅在有效值之外(extrapolate)添补NaN。0.23.0版中的新功能。
downcast : 可选, ‘infer’ 或None,默认为None,如果可能,请向下转换dtype。
kwargs,关键字参数通报给插值函数。
1.添补NaN在Series通过线性内插
s = pd.Series([0, 1, np.nan, 3])s.interpolate()
总结:本次案例利用了两个函数:分别是fillna()、interpolate(),根据不同函数性子,对数据进行处理。