Python 计算后续数据帧行之间的工作日

Python 计算后续数据帧行之间的工作日,python,pandas,numpy,Python,Pandas,Numpy,我有大熊猫数据框(超过1000000行),我需要以最快的方式获取两行(n和n+1)之间的工作日数(不包括周末),其中每行包含一个列日期。每次,我都需要将持续时间(结果)存储在同一数据帧的第n行的一个名为“持续时间”的列中。结果以秒为单位 我正在使用下面的代码以我所知道的最快的方式进行计算(欢迎使用任何更好的方式;-) 我想计算代码中没有周末的持续时间。我读到np.busday\u count(日期1,日期2)将完全做到这一点。但我不知道如何在我的情况下使用它。 有办法吗 非常感谢使用: 或 这是

我有大熊猫数据框(超过1000000行),我需要以最快的方式获取两行(n和n+1)之间的工作日数(不包括周末),其中每行包含一个列日期。每次,我都需要将持续时间(结果)存储在同一数据帧的第n行的一个名为“持续时间”的列中。结果以秒为单位

我正在使用下面的代码以我所知道的最快的方式进行计算(欢迎使用任何更好的方式;-)

我想计算代码中没有周末的持续时间。我读到np.busday\u count(日期1,日期2)将完全做到这一点。但我不知道如何在我的情况下使用它。 有办法吗

非常感谢使用:

这是更快的东西

示例:

import numpy as np
df=pd.DataFrame()
df['a']=np.arange(1000000)
import time




你有一百万次约会?我还有很多。这些不仅仅是日期。每行都有一个操作的日期,我正在计算两个操作之间的持续时间。操作是银行交易中的一项活动。我需要工作日的持续时间。谢谢,我会试试的。您知道如何使用这种方式将两行之间的差异编程为工作日而不是完整日历日吗?
tmp_df['duration'] = tmp_df['origin_tick_generation_time_stamp'].diff(-1)*-1
tmp_df['duration'] = tmp_df['origin_tick_generation_time_stamp'].diff()*shift(-1)
import numpy as np
df=pd.DataFrame()
df['a']=np.arange(1000000)
import time
start_time = time.time()
df['a'].shift(-1)-df['a']
elapsed_time = time.time() - start_time
print(elapsed_time)


#0.023838520050048828
start_time = time.time()
df['a'].diff(-1)*-1
elapsed_time = time.time() - start_time
print(elapsed_time)
#0.008615493774414062
start_time = time.time()
df['a'].diff().shift(-1)
elapsed_time = time.time() - start_time
print(elapsed_time)
#0.011868000030517578