我有两个数据帧,每个数据帧都包含来自同一时间帧的一个或多个时间序列,但在不同的时间戳上进行采样。
我想将它们合并为一个样本,并重新采样并插入第一个的索引。
这是第一个数据帧的示例:
a b c d
2013-01-01 07:00:00 0.45 24.33 9.04 0.00
2013-01-01 08:00:00 0.55 23.11 11.60 0.06
2013-01-01 09:00:00 0.69 27.23 18.18 0.03
2013-01-01 10:00:00 0.64 26.58 31.46 0.06
2013-01-01 11:00:00 0.36 17.50 42.58 0.29
2013-01-01 12:00:00 0.32 15.39 50.30 0.17
2013-01-01 13:00:00 0.41 17.73 51.45 0.13
2013-01-01 14:00:00 0.50 19.48 50.50 0.05
2013-01-01 15:00:00 0.48 18.32 51.51 0.03
2013-01-01 16:00:00 0.50 18.49 50.70 0.02
2013-01-01 17:00:00 1.13 32.89 40.07 0.20
2013-01-01 18:00:00 1.81 59.64 16.59 0.37
第二个:
e
2013-01-01 06:15:00 9.0
2013-01-01 06:45:00 9.0
2013-01-01 06:55:00 9.0
2013-01-01 07:15:00 9.0
2013-01-01 07:45:00 9.0
2013-01-01 07:55:00 9.0
2013-01-01 08:15:00 10.0
2013-01-01 08:45:00 11.0
2013-01-01 08:55:00 11.0
2013-01-01 09:15:00 12.0
2013-01-01 09:45:00 13.0
2013-01-01 09:55:00 13.0
2013-01-01 10:15:00 14.0
2013-01-01 10:45:00 15.0
2013-01-01 10:55:00 15.0
2013-01-01 11:15:00 14.0
2013-01-01 11:45:00 14.0
2013-01-01 11:55:00 14.0
2013-01-01 12:15:00 14.0
2013-01-01 12:45:00 14.0
2013-01-01 12:55:00 14.0
2013-01-01 13:15:00 14.0
2013-01-01 13:45:00 14.0
2013-01-01 13:55:00 14.0
2013-01-01 14:15:00 14.0
2013-01-01 14:45:00 14.0
2013-01-01 14:55:00 14.0
2013-01-01 15:15:00 14.0
2013-01-01 15:45:00 13.0
2013-01-01 15:55:00 13.0
2013-01-01 16:15:00 13.0
2013-01-01 16:45:00 13.0
2013-01-01 16:55:00 13.0
2013-01-01 17:15:00 12.0
2013-01-01 17:45:00 12.0
2013-01-01 17:55:00 12.0
2013-01-01 18:15:00 11.0
在这种情况下,第二个更为精细,但不一定如此。我想用第一个的日期重新采样第二个。 可以用优雅的熊猫方式做到这一点吗?
我尝试使用完整的数据帧reindex
,但是它抱怨轴重复。也许那真的是我的问题。
答案 0 :(得分:1)
简单的new_df = pd.concat((df1,df2), axis=1)
保留所有信息和时间戳。您可以根据需要选择对new_df
重新采样。
在这种情况下,您可以执行以下操作:
pd.concat((df1, df2.groupby(df2.index.floor('H')).mean()), axis=1)
输出:
a b c d e
idx
2013-01-01 06:00:00 NaN NaN NaN NaN 9.000000
2013-01-01 07:00:00 0.45 24.33 9.04 0.00 9.000000
2013-01-01 08:00:00 0.55 23.11 11.60 0.06 10.666667
2013-01-01 09:00:00 0.69 27.23 18.18 0.03 12.666667
2013-01-01 10:00:00 0.64 26.58 31.46 0.06 14.666667
2013-01-01 11:00:00 0.36 17.50 42.58 0.29 14.000000
2013-01-01 12:00:00 0.32 15.39 50.30 0.17 14.000000
2013-01-01 13:00:00 0.41 17.73 51.45 0.13 14.000000
2013-01-01 14:00:00 0.50 19.48 50.50 0.05 14.000000
2013-01-01 15:00:00 0.48 18.32 51.51 0.03 13.333333
2013-01-01 16:00:00 0.50 18.49 50.70 0.02 13.000000
2013-01-01 17:00:00 1.13 32.89 40.07 0.20 12.000000
2013-01-01 18:00:00 1.81 59.64 16.59 0.37 11.000000