import pandas as pd
df = pd.DataFrame({'TradeDate': pd.date_range("2022-12-29", "2030-01-03", freq="8H")})
# Initialize Days counter
dyc = df['TradeDate'].iloc[0].dayofyear
# Initialize Previous day of Year
prv_dof = dyc
def func(row):
global dyc, prv_dof
# Get the day of the year
dof = row.iloc[0].dayofyear
# If New day then increment days counter
if dof != prv_dof:
dyc+=1
prv_dof = dof
return dyc
df['dayNo'] = df.apply(func, axis=1)
3条答案
按热度按时间fnvucqvd1#
您可以定义一个开始计算天数的起始日,并使用从该日开始计算的天数作为列。下面是使用自生成数据说明这一点的示例:
7gyucuyw2#
您的解决方案已接近完成,只需申请最终结果
xoefb8l83#
让我们假设我们有一个Pandas Dataframe 如下与此脚本(灵感来自金藻 Dataframe ):
Dataframe 的日期为2022年至2030年:
我建议您使用下面的内部注解代码来实现我们的目标:
生成的 Dataframe :