重新采样的熊猫数据框日期时间对齐

时间:2020-05-23 04:20:06

标签: python pandas

我有3个重新采样的pandas数据框,它们使用的是按日期时间索引的相同数据。

每个数据帧都使用不同的时间帧(例如30分钟/ 60分钟/ 240分钟)进行重新采样。

2个数据帧已正确对齐并在日期时间对齐,因为它们具有相等的行数(20),但是第3个数据帧只有12行,因为没有足够的数据来创建20行重采样到240分钟。

如何调整240分钟数据框,使日期时间与其他2个数据框对齐?

例如,30分钟数据帧中的第二行等于60分钟数据帧中的对应行,60分钟数据帧中的每4行应等于240分钟数据帧中的对应行,但事实并非如此,因为240分钟数据帧已重新采样日期时间有所不同,因为没有足够的数据来创建20行。

1 个答案:

答案 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