gpt4 book ai didi

python - 如何使用 Pandas 创建 days_in_year 函数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:13 25 4
gpt4 key购买 nike

我正在尝试使用 Pandas 创建一个简单的列,该列将计算相邻日期列的年份中的天数。

我已经使用 DatetimeIndex 的 daysinmonth 属性相当轻松地完成了该月的天数,具体如下:

def daysinmonth(row):
x = pd.DatetimeIndex(row['Date']).daysinmonth
return x
daysinmonth(df)

如果没有漂亮的预定义属性,我很难在一年内模仿这些结果。

我的数据框如下所示(没有 days_in_year 列,因为我正在尝试创建它):

        Date       Days_in_month    Days_in_year
1 2/28/2018 28 365
2 4/14/2019 30 365
3 1/1/2020 31 366
4 2/15/2020 29 366

感谢所有看过的人!

最佳答案

通过4获取年份的模式,等于0表示366,否则表示365(注意这将不包括特殊情况,您可以查看更新功能和我提供的链接)

(pd.to_datetime(df.Date,format='%m/%d/%Y').dt.year%4).eq(0).map({True:366,False:365})
Out[642]:
1 365
2 365
3 366
4 366
Name: Date, dtype: int64

您可以使用这个更准确的闰年定义,来自这个 site 的定义

def daysinyear(x):
if x%4==0 :
if x%100==0:

if x%400==0:
return(366)
else:
return (365)
else :
return(365)
else:
return(365)


(pd.to_datetime(df.Date,format='%m/%d/%Y').dt.year%4).apply(daysinyear)
Out[656]:
1 365
2 365
3 366
4 366
Name: Date, dtype: int64

关于python - 如何使用 Pandas 创建 days_in_year 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50222042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com