gpt4 book ai didi

python - 将 pandas freq 字符串转换为 timedelta

转载 作者:太空狗 更新时间:2023-10-29 18:19:54 26 4
gpt4 key购买 nike

是否可以将“30T”(30 分钟)“2S”(2 秒)等字符串表示的频率转换为可以与 timedelta 进行比较的值?

如果可能的话,我正在寻找 pandas 的内部机制。使用 these 等机制对所有可能的字符串转换进行编码不会很健壮。

最佳答案

在许多情况下,您可以为此使用to_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')

然而,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')

如果您从 DatetimeIndex 的 freqstr 开始,第二种方法将始终有效。但是,您也可以使用 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')

关于python - 将 pandas freq 字符串转换为 timedelta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com