Python 熊猫-合并多个时间列和填充值
我有一个数据帧(Python 熊猫-合并多个时间列和填充值,python,pandas,Python,Pandas,我有一个数据帧(df): 我需要合并time列,对它们进行排序,然后以“向下”的方式填充缺少的值。 预期输出如下所示: index time val1 val2 0 0.1 - 2 1 0.2 1 2 2 0.3 3 2 3 0.4 1 2 4 0.8 1 9 5 1.0 1
df
):
我需要合并time
列,对它们进行排序,然后以“向下”的方式填充缺少的值。
预期输出如下所示:
index time val1 val2
0 0.1 - 2
1 0.2 1 2
2 0.3 3 2
3 0.4 1 2
4 0.8 1 9
5 1.0 1 2
与一些预处理一起使用-重命名
时间列并将索引转换为列,然后按排序,按删除重复项和缺少的值:
从主数据帧df创建2个数据帧,如下所示: 我假设索引不是一列
df1= df.iloc[:,[0,1,3]]
df2= df.iloc[:,[2,1,3]]
df2=df2.rename(columns={'time2':'time'})
然后合并两个数据帧
df3=pd.concat([df1,df2], ignore_index=True)
按时间值排序
df4=df3.sort_values("time").drop_duplicates('time').reset_index(drop=True)
解决方案未完成。@jezrael我忘记了前面的排序,我现在已经排序了。现在完成了吗?请将您的输出添加到答案中。@jezrael在t=0.4的输出答案中,val值是:val1=3和val2=2,而他期望t=0.4yop的val1=1和val2=2,这就是问题1下评论的原因是
0.1-2
第一行正确吗?不需要1.0 NaN 2
?最好是NaN
df3=pd.concat([df1,df2], ignore_index=True)
df4=df3.sort_values("time").drop_duplicates('time').reset_index(drop=True)