Pandas:重新采样数据帧以匹配不同数据帧的 DatetimeIndex

我有两个独立的时间序列pandas.dataframe,第一个 -series1条目较少,第二个开始数据时间不同 - series2:


index1 = pd.date_range(start='2020-06-16 23:16:00', end='2020-06-16 23:40:30', freq='1T')

series1 = pd.Series(range(len(index1)), index=index1)

index2 = pd.date_range('2020-06-16 23:15:00', end='2020-06-16 23:50:30', freq='30S')

series2 = pd.Series(range(len(index2)), index=index2)

如何重新采样 series2 以匹配DatetimeIndexof series1?


HUH函数
浏览 120回答 3
3回答

Smart猫小萌

使用reindex:series2.reindex(series1.index)输出:2020-06-16 23:16:00     22020-06-16 23:17:00     42020-06-16 23:18:00     62020-06-16 23:19:00     82020-06-16 23:20:00    102020-06-16 23:21:00    122020-06-16 23:22:00    142020-06-16 23:23:00    162020-06-16 23:24:00    182020-06-16 23:25:00    202020-06-16 23:26:00    222020-06-16 23:27:00    242020-06-16 23:28:00    262020-06-16 23:29:00    282020-06-16 23:30:00    302020-06-16 23:31:00    322020-06-16 23:32:00    342020-06-16 23:33:00    362020-06-16 23:34:00    382020-06-16 23:35:00    402020-06-16 23:36:00    422020-06-16 23:37:00    442020-06-16 23:38:00    462020-06-16 23:39:00    482020-06-16 23:40:00    50Freq: T, dtype: int64

红颜莎娜

一个简单的重采样不会产生正在寻找的结果吗?series2.resample('T').first()如果您的目标是将重新采样的时间戳合并回第一个数据集,您可以按如下方式进行:dt_map = {}for group_label, group_series in series2.resample('T'):    dt_map.update({x:group_label for x in group_series.index})# Overwrite the indexseries2.index = series2.index.map(dt_map)注意:如果要执行聚合函数,请坚持使用第一个选项。

潇潇雨雨

IIUC,这就是你需要的:series2[series2.index.isin(series1.index)]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python