| 插值法填补缺失值 函数DataFrame.interpolate()
 参数method:默认linear
 
 'polynomial'和'spline'都要求指定一个order(int)‘linear’:忽略索引并将值视为等间距index’, ‘values’:使用索引的实际数值‘pad’:用现有的数据填写NaN‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘spline’, ‘barycentric’, ‘polynomial’:
 
 参数limit:int,要填充的NaN值的最大个数,必须大于0
 参数limit_direction:{‘forward’, ‘backward’, ‘both’}, default ‘forward’,如果指定了limit,则按此方向填充连续的NaN。
 1、Series通过linear方法填充NaN
 
 复制代码s = pd.Series([0, 2, np.nan, np.nan,8])
print(s)
s.interpolate(method='linear')
  2、根据现有数据填充NaN
 
 复制代码s = pd.Series([0, 2, np.nan, np.nan,8,np.nan])
print(s)
s.interpolate(method='pad',limit=1)
  3、使用多项式方法填充
 
 复制代码s = pd.Series([0, 2, np.nan, np.nan,8,np.nan])
print(s)
s.interpolate(method='polynomial',order=2)
  4、指点方向填充数值
 
 复制代码df = pd.DataFrame([(0.0, np.nan, -1.0, 1.0),
...                    (np.nan, 2.0, np.nan, np.nan),
...                    (2.0, 3.0, np.nan, 9.0),
...                    (np.nan, 4.0, -4.0, 16.0)],
...                   columns=list('abcd'))
print(df)
df.interpolate(methmod='linear',limit_direction='backward',axis=0)
  5、对某一列作填充数值操作
 
 复制代码print(df['d'])
df['d'].interpolate(method='polynomial',order=2)
  
 |