web-dev-qa-db-fra.com

Comment ajouter / soustraire du temps (heures, minutes, etc.) d'un Pandas DataFrame.Index dont les objets sont de type datetime.time?

J'ai un DataFrame dont l'index est simplement datetime.time et il n'y a pas de méthode dans DataFrame.Index et datetime.time pour décaler l'heure. datetime.time a remplacer mais cela ne fonctionnera que sur des éléments individuels de la série?

Voici un exemple d'index utilisé:

In[526]:  dfa.index[:5]
Out[526]: Index([21:12:19, 21:12:20, 21:12:21, 21:12:21, 21:12:22], dtype='object')

In[527]:  type(dfa.index[0])
Out[527]: datetime.time
33
DreamAwake

Le lien de Liam a fière allure, mais vérifiez aussi pandas.Timedelta - on dirait que cela joue bien avec les deltas temporels de NumPy et Python.

https://pandas.pydata.org/pandas-docs/stable/timedeltas.html

pd.date_range('2014-01-01', periods=10) + pd.Timedelta(days=1)
43
Alex

Celui-ci a fonctionné pour moi:

>> print(df)
                          TotalVolume  Symbol
2016-04-15 09:00:00       108400       2802.T
2016-04-15 09:05:00       50300        2802.T

>> print(cur_df.set_index(pd.to_datetime(cur_df.index.values) - datetime(2016, 4, 15)))

             TotalVolume  Symbol
09:00:00     108400       2802.T
09:05:00     50300        2802.T
0
Philippe Remy