我正在开展一个项目,我正在尝试计算一个月内的工作日数。我目前所做的是从一个数据框中提取所有独特的月份到另一个数据框,并创建第二列
df2['Signin Date Shifted'] = df2['Signin Date'] + pd.DateOffset(months=1)
因此,当前的数据框如下所示:
我知道我可以做dt.daysinmonth或timedelta但是这给了我一个月内的所有日子,包括星期日/星期六(我不想要)。
答案 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 强>