【发布时间】:2019-04-04 15:08:02
【问题描述】:
我在处理缺失数据时遇到了障碍
我有这个 df
index a b c del
2018-06-25 12:51:00 NaN NaN NaN 1
2018-06-25 12:52:00 NaN NaN NaN NaN
2018-06-25 12:53:00 NaN NaN NaN NaN
2018-06-25 12:54:00 NaN NaN NaN NaN
2018-06-25 12:55:00 NaN NaN NaN NaN
2018-06-25 12:56:00 NaN NaN NaN NaN
2018-06-25 12:57:00 NaN NaN NaN NaN
2018-06-25 12:58:00 0.5 0.6 0.6 0.0
2018-06-25 12:59:00 NaN NaN NaN 0.0
2018-06-25 13:00:00 0.6 0.8 0.6 0.0
2018-06-25 13:01:00 NaN NaN NaN 0.0
2018-06-25 13:02:00 0.6 0.9 0.6 0.0
我想做什么
如果del 的值不缺失,则插入缺失值
当 del 有一个值时,我有这个解决方案只保留 df,我在连接后进行插值
但我想避免串联以及过多的代码和变量行
dfs= df.loc[df['del'].notnull(),:]
dfs.interpolate(method='time')
dfs1= df.loc[df['del'].isnull(),:]
dfs= pd.concat([dfs,dfs1], axis=1, sort=True, join_axes=[df.index])
想要的输出:
index a b c del
2018-06-25 12:51:00 NaN NaN NaN 1.0
2018-06-25 12:52:00 NaN NaN NaN NaN
2018-06-25 12:53:00 NaN NaN NaN NaN
2018-06-25 12:54:00 NaN NaN NaN NaN
2018-06-25 12:55:00 NaN NaN NaN NaN
2018-06-25 12:56:00 NaN NaN NaN NaN
2018-06-25 12:57:00 NaN NaN NaN NaN
2018-06-25 12:58:00 0.5 0.6 0.6 0.0
2018-06-25 12:59:00 0.6 0.7 0.7 0.0
2018-06-25 13:00:00 0.6 0.8 0.6 0.0
2018-06-25 13:01:00 0.7 0.9 0.7 0.0
2018-06-25 13:02:00 0.6 0.9 0.6 0.0
只是按列封闭小洞的故事
谢谢
【问题讨论】:
-
您的输出中的某些值似乎已关闭。在两个 0.6 值之间进行插值得到 0.7。
-
这只是一个例子
标签: python pandas numpy interpolation missing-data