首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算到节假日的天数

计算到节假日的天数
EN

Stack Overflow用户
提问于 2022-09-10 16:14:29
回答 1查看 55关注 0票数 -3

我有一个熊猫数据栏,它由一个日期列和一个名为isHoliday的二进制列组成,其中只有一个是假日,一个不是假日。我想再创建两列。一个是从date列到isHoliday列的天数,它从date列和列计算到下一个假期的天数。第二,假日列之后的天数,该列计算从date列和isHoliday列到最后一个假日的天数。

EN

回答 1

Stack Overflow用户

发布于 2022-09-10 17:03:32

由于您没有共享一个可重定义的示例,这里有一种方法(深受@解决方案的启发),可以根据由10个连续日期组成的数据格式中的DateisHoliday两列计算自/到上一个/下一个假日的天数。

代码语言:javascript
复制
import pandas as pd

# --- CREATING A SIMPLE DATASET
df = pd.DataFrame(pd.date_range("2022", periods=10), columns=['Date'])
df["isHoliday"] = [1, 0, 0, 0, 0, 0, 0, 1, 0, 0]

# --- CALCULATING THE TIME DELTAS
holidays = df['Date'].loc[df['isHoliday'] == 1].tolist()
holidays = pd.to_datetime(holidays, dayfirst=True)
df_hd = pd.DataFrame({'date1':holidays})

out = pd.merge_asof(df, df_hd, left_on='Date', right_on='date1', direction='forward')
out = pd.merge_asof(out, df_hd, left_on='Date', right_on='date1')

out['Days since the last holiday'] = out['Date'].sub(out.pop('date1_y')).dt.days
out['Days until the next holiday'] = out.pop('date1_x').sub(out['Date']).dt.days

>>> display(out)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73673351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档