熊猫Period / DateTimeIndex->​​每年的天数(包括leap年)

时间:2018-07-28 05:50:52

标签: python-3.x pandas datetime

我正在尝试通过各种惯例进行一些利率计算,其中之一是实际/实际代表期间的实际天数除以一年中的实际天数。

在大多数情况下,这是实际值/ 365,但是我试图说明leap年,并且似乎无法找到一种优雅的方式来实现这一点,而无需编写大量循环。

periods = pd.PeriodIndex(start='05-2019', freq='M', periods=60)
# how to make series of same length consisting of # of days in each year?

2 个答案:

答案 0 :(得分:0)

这有效:

periods.shift(12).to_timestamp() - periods.to_timestamp()

它给出:

TimedeltaIndex(['366 days', '366 days', '366 days', '366 days', '366 days',
                '366 days', '366 days', '366 days', '366 days', '366 days',
                '365 days', '365 days', '365 days', '365 days', '365 days',
...

答案 1 :(得分:0)

您可以这样做:

[366 if p.is_leap_year else 365 for p in periods]