在 Pandas 的 MultiIndex 中保留 DatetimeIndex 的 'freq'

Preserving DatetimeIndex `freq` in MultiIndex in Pandas

提问人:Jetpac 提问时间:10/19/2023 最后编辑:Jetpac 更新时间:10/19/2023 访问量:44

问:

我有一个 with a,我想将其用作 a 的一部分,但是当我这样做时,频率被设置为 .我可以保留频率吗?pd.DatetimeIndexfreqpd.MultiIndexNone

[1]: dates = pd.date_range('2000-01-01', '2000-03-31', freq='M')
     labls = pd.Index(['AA','BB'])
     multi = pd.MultiIndex.from_product([dates, labls])

不出所料,每月有一个:datesfreq='M'

[2]: dates
[2]: DatetimeIndex(['2000-01-31', '2000-02-29', '2000-03-31'],
        dtype='datetime64[ns]', freq='M')

多索引中的级别 0 是 DatetimeIndex,但频率是 ,可能是由于重复值。None

[3]: multi.get_level_values(0)
[3]: DatetimeIndex(['2000-01-31', '2000-01-31', '2000-02-29', '2000-02-29',
               '2000-03-31', '2000-03-31'],
              dtype='datetime64[ns]', freq=None)

有什么方法可以恢复进入的频率吗?

PS:我看到如果您使用代替DatetimeIndex,则保留频率。pd.PeriodIndex

不幸的是,PeriodIndex 对我不起作用,因为我在 DatetimeIndex 中同时使用月始 (MS) 和月末 (M) 频率,并且它们在 PeriodIndex 中没有区别。

Python Pandas 多索引

评论

1赞 sammywemmy 10/19/2023
我不认为它应该失去频率。也许在 Pandas GitHub 页面上将其作为错误提出

答: 暂无答案