如何从 Pandas DataFrame.Index 的对象类型为 datetime.time 的对象中添加/减去时间(小时、分钟等)?

问题描述 投票:0回答:3

我有一个 DataFrame,其索引值的类型为

datetime.time

DataFrame.Index
中没有方法可以改变时间。
datetime.time
已替换,但仅适用于个别项目。

这是一个例子:

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
python datetime time pandas
3个回答
153
投票

Liam 的链接看起来很棒,但也请查看

pandas.Timedelta
- 看起来它与 NumPy 和 Python 的时间增量配合得很好。

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

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

4
投票

这个对我有用:

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

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

             TotalVolume  Symbol
09:00:00     108400       2802.T
09:05:00     50300        2802.T

0
投票

菲利普的解决方案,但更清洁:

我的减法数据是:'2018-09-22T11:05:00.000Z'

import datetime
import pandas as pd

df_modified = pd.to_datetime(df_reference.index.values) - datetime.datetime(2018, 9, 22, 11, 5, 0)
© www.soinside.com 2019 - 2024. All rights reserved.