我有3个重新采样的pandas数据框,它们使用的是按日期时间索引的相同数据。
每个数据帧都使用不同的时间帧(例如30分钟/ 60分钟/ 240分钟)进行重新采样。
2个数据帧已正确对齐并在日期时间对齐,因为它们具有相等的行数(20),但是第3个数据帧只有12行,因为没有足够的数据来创建20行重采样到240分钟。
如何调整240分钟数据框,使日期时间与其他2个数据框对齐?
例如,30分钟数据帧中的第二行等于60分钟数据帧中的对应行,60分钟数据帧中的每4行应等于240分钟数据帧中的对应行,但事实并非如此,因为240分钟数据帧已重新采样日期时间有所不同,因为没有足够的数据来创建20行。
答案 0 :(得分:0)
如果您只是尝试将不同的数据集与一个索引对齐,则可以使用pd.concat。
import pandas as pd
periods = 12.5 * 240
index = pd.date_range(start='1/1/2018', periods=periods, freq="min")
data = pd.DataFrame(list(range(int(periods))), index=index)
df1 = data.resample('30min').asfreq()
df2 = data.resample('60min').asfreq()
df3 = data.resample('240min').asfreq()
df4 = pd.concat([df1, df2, df3], axis=1)
print(df4)
输出:
2018-01-01 00:00:00 0 0.0 0.0
2018-01-01 00:30:00 30 NaN NaN
2018-01-01 01:00:00 60 60.0 NaN
2018-01-01 01:30:00 90 NaN NaN
2018-01-01 02:00:00 120 120.0 NaN
... ... ... ...
2018-01-02 23:30:00 2850 NaN NaN
2018-01-03 00:00:00 2880 2880.0 2880.0
2018-01-03 00:30:00 2910 NaN NaN
2018-01-03 01:00:00 2940 2940.0 NaN
2018-01-03 01:30:00 2970 NaN NaN