【发布时间】:2019-06-29 12:38:36
【问题描述】:
我正在尝试以指定的时间戳对 pandas.Series 进行切片。从其他 SO 问题中,我得到了以下工作流程:
import pandas as pd
x = ... # some time data
y = ... # some value data
lower_limit_x = pd.to_datetime(x.index) >= pd.to_datetime('2019-01-23 20:59:04')
upper_limit_x = pd.to_datetime(x.index) <= pd.to_datetime('2019-01-23 21:37:44')
lower_limit_y = pd.to_datetime(y.index) >= pd.to_datetime('2019-01-23 20:59:04')
upper_limit_y = pd.to_datetime(y.index) <= pd.to_datetime('2019-01-23 21:37:44')
mask_x = lower_limit_x & upper_limit_x
mask_y = lower_limit_y & upper_limit_y
sliced_x = x[mask_x]
sliced_y = y[mask_y]
但是,如果我从以下数据集开始,该数据集跨越大约。 2019-01-23 20:45 至 2019-01-23 04:00:
结果数据似乎是空的。如果我这样做了
sliced_y.values
结果为空。
如何成功地按时间戳对数据进行切片?
【问题讨论】:
-
我无法复制,但您可能希望查看
pd.DataFrame.between_time以通过单个方法调用过滤您的数据帧。 -
你好@jpp 感谢这个提示!我觉得我的数据现在的格式不正确。例如。所有时间戳都在
x系列中,所有值都在y系列中。如何将这两个系列合并为一个合适的系列? -
是
len(x) == len(y),即你的两个系列有相同的长度吗? -
是的,它们确实有相同的长度。
标签: python pandas datetime indexing