簡體   English   中英

計算假期天數 pandas

[英]Calculate number of days to holidays pandas

我有一個 pandas dataframe 由一個日期列和一個名為 isHoliday 的二進制列組成,如果日期是假日則僅包含 1,如果不是假日則包含 1。 我想再創建兩列。 一,節假日天數列,從日期列和isHoliday列計算下一個節假日的天數。 二、節后天數列,從日期列和isHoliday列計算到最后一個節假日的天數。

由於您沒有分享可重復的示例,因此here有一種方法(受jezrael解決方案的高度啟發)根據兩列DateisHoliday在由十個組成的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM