找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 219|回复: 4

[求助] 关于筛选数据进行线性插值的疑问

3

主题

5

帖子

5

积分

贫民

积分
5
lmw0320 发表于 2019-4-3 10:06:31 | 显示全部楼层 |阅读模式

如果在筛选的情况下,对单列进行插值应用,该怎么做?
我目前遇到个难题,横向数据上有几组数据(每组数据之间的差别较大,不好直接忽视组别而暴力插值,否则数据偏差较大)。因此我考虑对数据进行分组后,再分别插值(组别较多,没法手动处理)。
我个人开始考虑了几个办法:
1. 用groupby('组别')['字段名'].interpolate(),对指定字段进行插值,但是无法插入数据(空值数量仍旧不变)
2. 用for 循环对组别进行遍历(用unique()方法获取单一值),再进行插值,和上述办法一样,不报错,却也无法填充数据。
3. groupby方法生成的是特殊的SeriesGroupBy格式,而interpolate是适用DataFrame和Series格式的,我即使将其强制转换成Series格式,都没有效果。

恳请高手指点迷津。。。


回复

使用道具 举报

0

主题

438

帖子

438

积分

骑士

积分
438
sheeboard 发表于 2019-4-3 12:23:24 | 显示全部楼层
axis=1参数试过吗
回复 支持 反对

使用道具 举报

3

主题

5

帖子

5

积分

贫民

积分
5
lmw0320  楼主| 发表于 2019-4-3 13:36:03 | 显示全部楼层

这个参数,设置在哪里?
interpolate后面还是?
回复 支持 反对

使用道具 举报

3

主题

5

帖子

5

积分

贫民

积分
5
lmw0320  楼主| 发表于 2019-4-3 13:50:33 | 显示全部楼层

刚试过了,会报错:No axis named 1 for object type <class 'pandas.core.series.Series'>
我试过好几种办法,貌似这个interpolate只适用于DataFrame.interpolate和Series.interpolate,而且Series还不能进行筛选。。也就是只能写成data['column'].interpolate,如果是data[data['column1'] ==xx]['column'].interpolate就不行。。
回复 支持 反对

使用道具 举报

0

主题

438

帖子

438

积分

骑士

积分
438
sheeboard 发表于 2019-4-3 16:46:53 | 显示全部楼层
传个模拟数据和具体要求上来。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表