Pandas Dataframe计算营业日数

时间:2018-04-26 17:35:40

标签: python pandas

我正在开展一个项目,我正在尝试计算一个月内的工作日数。我目前所做的是从一个数据框中提取所有独特的月份到另一个数据框,并创建第二列

df2['Signin Date Shifted'] = df2['Signin Date'] + pd.DateOffset(months=1)

因此,当前的数据框如下所示:

enter image description here

我知道我可以做dt.daysinmonth或timedelta但是这给了我一个月内的所有日子,包括星期日/星期六(我不想要)。

1 个答案:

答案 0 :(得分:3)

使用busday_count

中的np

<强>实施例

import pandas as pd
import numpy as np

df = pd.DataFrame({"Signin Date": ["2018-01-01", "2018-02-01"]})
df["Signin Date"] = pd.to_datetime(df["Signin Date"])
df['Signin Date Shifted'] = pd.DatetimeIndex(df['Signin Date']) + pd.DateOffset(months=1)

df["bussDays"] = np.busday_count( df["Signin Date"].values.astype('datetime64[D]'), df['Signin Date Shifted'].values.astype('datetime64[D]'))
print(df)

<强>输出:

  Signin Date Signin Date Shifted  bussDays
0  2018-01-01          2018-02-01        23
1  2018-02-01          2018-03-01        20

<强> MoreInfo