gpt4 book ai didi

python - 在 Pandas 中屏蔽工作日的特定时间段

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:38 25 4
gpt4 key购买 nike

我有一个 pandas.Dataframe ,它看起来像这样:

                            A
date
2017-07-22 04:30:00 2707.500000
2017-07-22 05:00:00 2715.400000
2017-07-22 05:30:00 2759.300000
2017-07-22 06:00:00 2755.079086
2017-07-22 08:30:00 2840.000000
2017-07-22 09:00:00 2817.500000
2017-07-22 09:30:00 2818.900000
2017-07-22 10:00:00 2838.300000
2017-07-22 10:30:00 2865.300000
2017-07-22 11:00:00 2888.800000
... ...
... ...
2017-08-03 11:30:00 2742.000000
2017-08-03 12:00:00 2737.000000
2017-08-03 12:30:00 2732.000000
2017-08-03 13:00:00 2738.000000
2017-08-03 13:30:00 2742.800000
2017-08-03 14:00:00 2736.900000
2017-08-03 14:30:00 2733.300000
2017-08-03 15:00:00 2739.400000

..等等

我想做的是创建一个掩码,选择所有行,其中日期既是工作日又是小时数在 [X] 和 [Y] 内。

例子:

mask = SELECT ROWS where Date is a Weekday and Hour is greater than 9am and less than 5pm

我的想法是这样的:

newdf = df.apply(lambda x : np.where(pd.date_range(??, ??).weekday), axis=1)

我还看到了对一些“isin”的引用' 功能..

总的来说,我非常坚持这一点,并没有通过谷歌搜索找到合适的。非常感谢任何帮助。

最佳答案

这是一种方式

In [1140]: (df.index.hour >= 9) & (df.index.hour <= 17) & (df.index.weekday < 5)
Out[1140]:
array([False, False, False, False, False, False, False, False, False,
False, True, True, True, True, True, True, True, True], dtype=bool)

In [1141]: df[(df.index.hour >= 9) & (df.index.hour <= 17) & (df.index.weekday < 5)]
Out[1141]:
A
date
2017-08-03 11:30:00 2742.0
2017-08-03 12:00:00 2737.0
2017-08-03 12:30:00 2732.0
2017-08-03 13:00:00 2738.0
2017-08-03 13:30:00 2742.8
2017-08-03 14:00:00 2736.9
2017-08-03 14:30:00 2733.3
2017-08-03 15:00:00 2739.4

而且,如果您的数据不需要工作日检查,对于时间过滤,您可以使用 between_time

In [1144]: df.between_time('9:00AM', '5:00PM')
Out[1144]:
A
date
2017-07-22 09:00:00 2817.5
2017-07-22 09:30:00 2818.9
2017-07-22 10:00:00 2838.3
2017-07-22 10:30:00 2865.3
2017-07-22 11:00:00 2888.8
2017-08-03 11:30:00 2742.0
2017-08-03 12:00:00 2737.0
2017-08-03 12:30:00 2732.0
2017-08-03 13:00:00 2738.0
2017-08-03 13:30:00 2742.8
2017-08-03 14:00:00 2736.9
2017-08-03 14:30:00 2733.3
2017-08-03 15:00:00 2739.4

关于python - 在 Pandas 中屏蔽工作日的特定时间段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45488873/

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