麦粉社区
>
帖子详情

python学习篇-pandas库(九)

数据挖掘 发表于 2019-12-25 16:32
发表于 2019-12-25 16:32:45
插值法填补缺失值
函数DataFrame.interpolate()
参数method:默认linear
  • ‘linear’:忽略索引并将值视为等间距
  • index’, ‘values’:使用索引的实际数值
  • ‘pad’:用现有的数据填写NaN
  • ‘nearest’, ‘zero’, ‘slinear’, ‘quadratic’, ‘cubic’, ‘spline’, ‘barycentric’, ‘polynomial’:
      'polynomial'和'spline'都要求指定一个order(int)

参数limit:int,要填充的NaN值的最大个数,必须大于0
参数limit_direction:{‘forward’, ‘backward’, ‘both’}, default ‘forward’,如果指定了limit,则按此方向填充连续的NaN
1、Series通过linear方法填充NaN
  1. s = pd.Series([0, 2, np.nan, np.nan,8])
  2. print(s)
  3. s.interpolate(method='linear')
复制代码
524055e031678965a3.png
2、根据现有数据填充NaN
  1. s = pd.Series([0, 2, np.nan, np.nan,8,np.nan])
  2. print(s)
  3. s.interpolate(method='pad',limit=1)
复制代码
718705e03173cb49de.png
3、使用多项式方法填充
  1. s = pd.Series([0, 2, np.nan, np.nan,8,np.nan])
  2. print(s)
  3. s.interpolate(method='polynomial',order=2)
复制代码
506765e031b8ff322c.png
4、指点方向填充数值
  1. df = pd.DataFrame([(0.0, np.nan, -1.0, 1.0),
  2. ...                    (np.nan, 2.0, np.nan, np.nan),
  3. ...                    (2.0, 3.0, np.nan, 9.0),
  4. ...                    (np.nan, 4.0, -4.0, 16.0)],
  5. ...                   columns=list('abcd'))
  6. print(df)
  7. df.interpolate(methmod='linear',limit_direction='backward',axis=0)
复制代码
321795e031d7118fea.png
5、对某一列作填充数值操作
  1. print(df['d'])
  2. df['d'].interpolate(method='polynomial',order=2)
复制代码
349635e031e7788e76.png
高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 0关注人数 3091浏览人数
最后回复于:2019-12-25 16:32
快速回复 返回顶部 返回列表