gpt4 book ai didi

python - 在 Pandas 的时间之间排除

转载 作者:太空狗 更新时间:2023-10-30 02:17:34 24 4
gpt4 key购买 nike

我知道你可以从pandas.DatetimeIndex中选择数据使用 pandas.DataFrame.between_time .在 pandas 中有没有一种方便的方法来排除两次之间?

例如,要排除16:00到17:00之间的数据,我目前是这样做的。

In [1]: import pandas as pd
import numpy as np

In [2]: df = pd.DataFrame(np.random.randn(24 * 60 + 1, 2), columns=list("AB"), index=pd.date_range(start="20161013 00:00:00", freq="1T", periods=24 * 60 +1))

In [3]: idx = df.index.hour == 16

In [4]: df = df[~idx]

In [5]: df.between_time("16:00", "17:00")
Out[5]:
A B
2016-10-13 17:00:00 -0.745892 1.832912

编辑

我已经能够使用这个:

In[41]:df2 = df.ix[np.setdiff1d(df.index, df.between_time("16:00", "17:00").index)]


In[42]:df2.between_time("15:59", "17:01")
Out[42]:
A B
2016-10-13 15:59:00 1.190678 0.783776
2016-10-13 17:01:00 -0.590931 -1.059962

有没有更好的办法?

最佳答案

您可以将 between_timedrop 结合使用:

df2 = df.drop(df.between_time("16:00", "17:00").index)

编辑

另一种方法是利用 between_time 循环运行的事实,因此您可以切换输入时间的顺序以排除它们之间的范围:

df.between_time("17:00", "16:00", include_start=False, include_end=False)

关于python - 在 Pandas 的时间之间排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40049456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com