如何在熊猫中将索引转换为日期时间?

Posted

技术标签:

【中文标题】如何在熊猫中将索引转换为日期时间?【英文标题】:how can i convert index to datetime in pandas? 【发布时间】:2018-07-04 10:35:33 【问题描述】:

我有这样的索引

Index(['00:00:00', '00:15:00', '00:30:00', '00:45:00', '01:00:00', '01:15:00',
       '01:30:00', '01:45:00', '02:00:00', '02:15:00', '02:30:00', '02:45:00'],
      dtype='object', name='time') 

并需要将其转换为日期时间 %H:%M:%S 格式 怎么改?

【问题讨论】:

【参考方案1】:

我认为你需要:

idx = pd.Index(['00:00:00', '00:15:00', '00:30:00', '00:45:00', '01:00:00', '01:15:00',
       '01:30:00', '01:45:00', '02:00:00', '02:15:00', '02:30:00', '02:45:00'],
      dtype='object', name='time') 

DatetimeIndex需要一些日期,默认添加今天:

print (pd.to_datetime(idx))
DatetimeIndex(['2018-01-25 00:00:00', '2018-01-25 00:15:00',
               '2018-01-25 00:30:00', '2018-01-25 00:45:00',
               '2018-01-25 01:00:00', '2018-01-25 01:15:00',
               '2018-01-25 01:30:00', '2018-01-25 01:45:00',
               '2018-01-25 02:00:00', '2018-01-25 02:15:00',
               '2018-01-25 02:30:00', '2018-01-25 02:45:00'],
              dtype='datetime64[ns]', name='time', freq=None)

或者可以添加自定义日期:

print (pd.to_datetime('2015-01-01 ' + idx))
DatetimeIndex(['2015-01-01 00:00:00', '2015-01-01 00:15:00',
               '2015-01-01 00:30:00', '2015-01-01 00:45:00',
               '2015-01-01 01:00:00', '2015-01-01 01:15:00',
               '2015-01-01 01:30:00', '2015-01-01 01:45:00',
               '2015-01-01 02:00:00', '2015-01-01 02:15:00',
               '2015-01-01 02:30:00', '2015-01-01 02:45:00'],
              dtype='datetime64[ns]', freq=None)

另一种解决方案是创建TimedeltaIndex:

print (pd.to_timedelta(idx))

TimedeltaIndex(['00:00:00', '00:15:00', '00:30:00', '00:45:00', '01:00:00',
                '01:15:00', '01:30:00', '01:45:00', '02:00:00', '02:15:00',
                '02:30:00', '02:45:00'],
               dtype='timedelta64[ns]', name='time', freq=None)

【讨论】:

以上是关于如何在熊猫中将索引转换为日期时间?的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中将列转换为一个日期时间列?

如何在熊猫中将字符串日期转换为数字[重复]

在熊猫数据框中将不同的日期时间格式转换为 MM/DD/YYYY 格式

索引转换为熊猫日期时间后,绘图图表是一团糟

将索引转换为日期时间对象后,MatplotLib 无法正确绘制熊猫时间序列 1 分钟数据

更改熊猫中日期时间列的时区并添加为分层索引