python - 计算存储在列中的两个日期之间的差异,仅排除Python中的星期日?

标签 python pandas numpy date jupyter

df.head(3)
Out[20]: 
  First_date Second_date
0 2021-09-18  2021-09-17
1 2021-09-22  2021-09-17
2 2021-09-27  2021-09-17

我已经计算了两个 date_columns 之间的差异,但我只想从日期中排除星期日,现在我已经计算了他整整一周的时间。

df["First_date"] = df['First_date'].astype('datetime64[ns]')
df["Second_date"] = df['Second_date'].astype('datetime64[ns]')
df["days"] = df["First_date"].sub(df ["Second_date"],axis=0)

df.head(3)
Out[20]: 
  First_date Second_date days
0 2021-09-18  2021-09-17  1
1 2021-09-22  2021-09-17  5
2 2021-09-27  2021-09-17  10

df.head(3)
Out[20]: 
  First_date Second_date days expected_outcome
0 2021-09-18  2021-09-17  1    1
1 2021-09-22  2021-09-17  5    4
2 2021-09-27  2021-09-17  10   8

这就是我过去计算到现在为止的天数的方法。

最佳答案

尝试:

df["First_date"] = pd.to_datetime(df["First_date"])
df["Second_date"] = pd.to_datetime(df["Second_date"])

sundays = df.apply(lambda x: len(pd.date_range(x["Second_date"], x["First_date"], freq="W-SUN")), axis=1)
df["days"] = (df["First_date"]-df["Second_date"]).dt.days-sundays

>>> df
  First_date Second_date  days
0 2021-09-18  2021-09-17     1
1 2021-09-22  2021-09-17     4
2 2021-09-27  2021-09-17     8

关于python - 计算存储在列中的两个日期之间的差异,仅排除Python中的星期日?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69271506/

相关文章:

python - 逻辑回归模型不是学习

python - Django:如何动态过滤下拉框?

python - Python Fabric 中回车符 (\r) 的处理

python - 使用字典作为键划分两个 Pandas DataFrame

python - 在 Dataframe 中展开嵌套字典

Python Opencv output.avi screengrab 颜色为蓝色密集

python - 使用 BeautifulSoup 获取属性值

Python 正则表达式 : replace numbers and special characters except years

python - 在 Pandas DataFrame Python 中分组

python - 用 Boost Python 包装 C++ 函数——numpy 数组类型