如何将整数索引转换为日期

时间:2019-01-09 19:28:42

标签: python python-3.x pandas

我有一个具有这种索引的数据框:

import pandas as pd
data = pd.read_csv('my_file', sep=',')
data2 = data.set_index('DT')
print(data2)

...
34146 xx zz
34147 xx zz
34148 xx zz
34201 xx zz
34202 xx zz
...

我知道前三个数字是一年中的日子(001 = 01/01/2018),后两个数字是小时,时长为30分钟。 我想将此索引转换为日期时间格式。 我已经看过并测试了论坛上看到的许多脚本,但是没有任何效果(而且我是一个新手...) 非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您需要类似的东西吗?

import datetime

def mysterious_dt_convert(mysterious_dt):
    return ( datetime.datetime(2018,1,1)             
            + datetime.timedelta(days=int(str(mysterious_dt)[:3]))
            + datetime.timedelta(minutes=int(str(mysterious_dt)[3:])*30))

mysterious_dt_convert(34146), mysterious_dt_convert(34147)

答案 1 :(得分:0)

import datetime
def func(lst):
    return [datetime.datetime(2018, 1, 1) + datetime.timedelta(a/100 - 1) + datetime.timedelta(minutes=(a%100)*30) for a in lst]

data2["Date"] = func(data2.index)
data2 = data2.set_index("Date")
data2

                     DT  x   z
0   2018-12-07 23:00:00 xx  zz
1   2018-12-07 23:00:00 xx  zz
2   2018-12-08 00:00:00 xx  zz
3   2018-12-08 00:30:00 xx  zz
4   2018-12-08 01:00:00 xx  zz

希望这会有所帮助