将频率字符串转换为时间增量

是否可以将由字符串表示的频率(如“30T”(30分钟)“2S”(2秒)转换为可以与时间增量进行比较的频率

如果可能的话,我正在寻找熊猫内部的机制。使用这样的机制对所有可能的字符串转换进行编码是不可靠的

在许多情况下,您可以为此使用to_timedelta功能。它将字符串转换为时间增量:

[9]on

:局部放电到时间增量('30min')
Out[9]:Timedelta('0天00:30:00')
At[10]on:局部放电到时间增量('2S')
Out[10]:Timedelta('0天00:00:02')

然而,pd.to_timedelta(’30T’)似乎不起作用,但这可能被视为缺失的功能。
但是,如果您首先将其转换为频率对象,然后将其提供给到_timedelta,则此方法确实有效:

[19]on

:从pandas.tseries.frequencies导入到\u offset
At[20]on:局部放电到时间增量(到偏移量('30T'))
Out[20]:Timedelta('0天00:30:00')

如果从DatetimeIndex开始使用freqstr,则第二种方法始终有效。但是,您也可以使用freq代替直接返回频率对象的freqstr

[34]on

:dtidx=pd.date\u范围('2012-01-01',周期=5,频率=30min')
In[35]:局部放电到时间增量(dtidx.freq)
Out[35]:Timedelta('0天00:30:00')

发表评论