J'ai un df.index normal que j'aimerais lui ajouter quelques heures.
In [1]: test[1].index
Out[2]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2010-03-11, ..., 2014-08-14]
Length: 52, Freq: None, Timezone: None
Voici à quoi ressemble le premier élément:
In [1]: test[1].index[0]
Out[2]: Timestamp('2010-03-11 00:00:00')
J'essaie donc d'ajouter les heures:
In [1]: test[1].index[0] + pd.tseries.timedeltas.to_timedelta(16, unit='h')
Cependant, je reçois ceci:
Out[2]: Timestamp('2010-03-11 00:00:00.000000016')
Mais je voudrais obtenir ceci:
Out[2]: Timestamp('2010-03-11 16:00:00')
Qu'est-ce qui me manque?. L'environnement est Anaconda (dernier) Python 2.7.7, iPython 2.2
Merci beaucoup
Vous pouvez utiliser pd.DateOffset :
test[1].index + pd.DateOffset(hours=16)
pd.DateOffset
accepte les mêmes arguments de mot-clé que dateutil.relativedelta .
Le problème que vous avez rencontré est dû à ce bogue qui a été corrigé dans Pandas version 0.14.1 :
In [242]: pd.to_timedelta(16, unit='h')
Out[242]: numpy.timedelta64(16,'ns')
Si vous effectuez une mise à niveau, votre code d'origine devrait fonctionner.