In molti casi, è possibile utilizzare la funzione to_timedelta
per questo. Sarà convertire una stringa in un 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')
Tuttavia, sembra che pd.to_timedelta ('30T') non funziona, ma questo può forse essere considerata come una caratteristica mancante.
Ma, per questo funziona se prima convertirlo in un oggetto di frequenza e quindi fornire al 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')
Se si inizia da un freqstr
da un DatetimeIndex, il secondo approccio funziona sempre. Ma, è anche possibile utilizzare freq
invece di freqstr
, che restituisce un oggetto di frequenza direttamente:
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')
puoi dare il tuo contributo per favore? –
possibile duplicato di [Come costruire un oggetto timedelta da una semplice stringa] (http://stackoverflow.com/questions/4628122/how-to-construct-a-timedelta-object-from-a-simple-string) – SiHa
@ColonelBeauvel: l'input è stringhe come "30T" o così com'è o recuperate dall'attributo 'freqstr' di un DateTimeIndex –