[英]Calculate number of days to holidays pandas
我有一個 pandas dataframe 由一個日期列和一個名為 isHoliday 的二進制列組成,如果日期是假日則僅包含 1,如果不是假日則包含 1。 我想再創建兩列。 一,節假日天數列,從日期列和isHoliday列計算下一個節假日的天數。 二、節后天數列,從日期列和isHoliday列計算到最后一個節假日的天數。
由於您沒有分享可重復的示例,因此here
有一種方法(受jezrael
解決方案的高度啟發)根據兩列Date
和isHoliday
在由十個組成的 dataframe 中計算自/直到最后一個/下一個假期的天數連續日期。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.