是否有可能将字符串表示的频率(如"30T"(30分钟)"2S"(2秒))转换为可以与timedelta进行比较的内容?
如果可能的话,我正在寻找熊猫内部的机制.使用编码机制的所有可能的字符串转换等,这些不会是强劲的.
jor*_*ris 20
在许多情况下,您可以使用此to_timedelta功能.它会将字符串转换为timedelta:
In [9]: pd.to_timedelta('30min')
Out[9]: Timedelta('0 days 00:30:00')
In [10]: pd.to_timedelta('2S')
Out[10]: Timedelta('0 days 00:00:02')
Run Code Online (Sandbox Code Playgroud)
但是,似乎pd.to_timedelta('30T')不起作用,但这可能被视为缺失的特征.
但是,对于这个,如果你首先将它转换为频率对象,然后将其提供给to_timedelta:
In [19]: from pandas.tseries.frequencies import to_offset
In [20]: pd.to_timedelta(to_offset('30T'))
Out[20]: Timedelta('0 days 00:30:00')
Run Code Online (Sandbox Code Playgroud)
如果freqstr从DatetimeIndex开始,第二种方法将始终有效.但是,您也可以使用freq而不是freqstr直接返回频率对象:
In [34]: dtidx = pd.date_range('2012-01-01', periods=5, freq='30min')
In [35]: pd.to_timedelta(dtidx.freq)
Out[35]: Timedelta('0 days 00:30:00')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |