背景: 我有一个月的实验数据。数据值在某种程度上定期进行,但没有均匀地分成一整天。因此,测量在午夜的第一天开始,但是在第一天的00:03开始,第二天的开始在00:07等。因此,每天所取的数据读数被移位。此外,读数之间的频率略有变化。在最后三天重复前三天的实验条件,以比较中间日的影响。
目标: 我想将重复的日子相互比较,并对它们进行区分。
问题: 应比较第1天和第25天,但相对的每日时间不对应,所以我想比较第一天的线性插值每天到第25天的数据点。即对于第25天的每个时间点(相对于一天的开始),我想从第一天减去相同的点。如果第一天没有对应点,我想使用最近点之间的线性插值。
到目前为止:
我有按行索引的Pandas Dataframes,列 time 和 value ,两者都是Floats。我在 time 列上使用pandas.to_timedelta()
创建了一个新列 delta 。我已经尝试减去第1天和第25天,但由于指数不对齐,我最终得到了许多NaN值。我也试过制作 delta 索引,但仍然无法弄清楚如何使计算正确。
答案 0 :(得分:0)
我通过
解决了这个问题将两个DataFrame的索引设置为因变量data.set_index( day_time )
创建两个DataFrame索引的并集combined_index = df1.index.union( df2.index )
使用组合索引df = df.reindex( combined_index )
重新索引两个DataFrame
内插数据框df = df.interpolate( how = 'linear' )
这在两个DataFrame中创建了一组相互指数,允许使用算术运算符轻松进行比较。