我想找到一種方法,可以在給定 Pandas 時間戳的情況下給我下個月/季度/年/半年的日期。
如果時間戳已經是月末/季度/年/半年的日期,那么我可以獲得下一個季度的日期,如下所示:
pd.Timestamp('1999-12-31') pd.tseries.offsets.DateOffset(months=3)
如果時間戳是pd.Timestamp('1999-12-30'),上面的將不起作用。
預期輸出
input = pd.Timestamp('1999-12-30')
next_quarter_end = '2000-03-31'
next_month_end = '2000-01-31'
next_year_end = '2000-12-31'
next_biannual_end = '2000-06-30'
uj5u.com熱心網友回復:
這有效。我使用pandas.tseries.offsets.QuarterEnd, .MonthEnd, 和.YearEnd乘以根據輸入而變化的特定因素,以獲得您正在尋找的四個值。
date = pd.Timestamp('1999-12-31')
month_factor = 1 if date.day == date.days_in_month else 2
year_factor = 1 if date.day == date.days_in_month and date.month == 12 else 2
next_month_end = date pd.tseries.offsets.MonthEnd() * month_factor
next_quarter_end = date (pd.tseries.offsets.QuarterEnd() * month_factor)
next_year_end = date pd.tseries.offsets.YearEnd() * year_factor
next_biannual_end = date pd.tseries.offsets.DateOffset(months=6)
uj5u.com熱心網友回復:
從技術上講,下一個季度結束后Timestamp('1999-12-30')是Timestamp('1999-12-31 00:00:00')
您可以使用 pandas.tseries.offsets.QuarterEnd
>>> pd.Timestamp('1999-12-30') pd.tseries.offsets.QuarterEnd()
Timestamp('1999-12-31 00:00:00')
>>> pd.Timestamp('1999-12-30') pd.tseries.offsets.QuarterEnd()*2
Timestamp('2000-03-31 00:00:00')
同樣,使用pandas.tseries.offsets.MonthEnd()和pandas.tseries.offsets.YearEnd()
兩年一次,我想你可以拿2*QuarterEnd()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352355.html
上一篇:R中的西班牙日期
