Python 处理缺失值(条件插补)问题
我在处理丢失的数据时遇到了障碍 我有这个dfPython 处理缺失值(条件插补)问题,python,pandas,numpy,interpolation,missing-data,Python,Pandas,Numpy,Interpolation,Missing Data,我在处理丢失的数据时遇到了障碍 我有这个df 索引a b c del 2018-06-25 12:51:00南1 2018-06-25 12:52:00楠楠 2018-06-25 12:53:00楠楠 2018-06-25 12:54:00楠楠 2018-06-25 12:55:00楠楠 2018-06-25 12:56:00楠楠 2018-06-25 12:57:00楠楠 2018-06-25 12:58:00 0.5 0.6 0.6 0.0 2018-06-2
索引a b c del
2018-06-25 12:51:00南1
2018-06-25 12:52:00楠楠
2018-06-25 12:53:00楠楠
2018-06-25 12:54:00楠楠
2018-06-25 12:55:00楠楠
2018-06-25 12:56:00楠楠
2018-06-25 12:57:00楠楠
2018-06-25 12:58:00 0.5 0.6 0.6 0.0
2018-06-25 12:59:00楠楠0.0
2018-06-25 13:00:00 0.6 0.8 0.6 0.0
2018-06-25 13:01:00楠楠0.0
2018-06-25 13:02:00 0.6 0.9 0.6 0.0
我想做什么
如果不缺少del
的值,则插入缺少的值
当del有一个值时,我让这个解只保留df,然后在concatene之后进行插值
但我希望避免串联和太多的代码和变量行
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])
期望输出:
索引a b c del
2018-06-25 12:51:00楠楠1.0
2018-06-25 12:52:00楠楠
2018-06-25 12:53:00楠楠
2018-06-25 12:54:00楠楠
2018-06-25 12:55:00楠楠
2018-06-25 12:56:00楠楠
2018-06-25 12:57:00楠楠
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
用柱子堵住小洞的故事
谢谢使用
.loc
仅在'del'
不为空时分配插值:
df.loc[df['del'].notnull()] = df.loc[df['del'].notnull()].interpolate(method='time')
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.50 0.60 0.6 0.0
2018-06-25 12:59:00 0.55 0.70 0.6 0.0
2018-06-25 13:00:00 0.60 0.80 0.6 0.0
2018-06-25 13:01:00 0.60 0.85 0.6 0.0
2018-06-25 13:02:00 0.60 0.90 0.6 0.0
使用
.loc
仅在'del'
不为空时分配插值:
df.loc[df['del'].notnull()] = df.loc[df['del'].notnull()].interpolate(method='time')
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.50 0.60 0.6 0.0
2018-06-25 12:59:00 0.55 0.70 0.6 0.0
2018-06-25 13:00:00 0.60 0.80 0.6 0.0
2018-06-25 13:01:00 0.60 0.85 0.6 0.0
2018-06-25 13:02:00 0.60 0.90 0.6 0.0
输出中的某些值似乎已关闭。在两个0.6的值之间插值得到0.7。这只是一个示例,输出中的一些值似乎关闭了。在两个0.6的值之间插值得到0.7。这只是一个例子。我会试试这个