我有一个具有这种索引的数据框:
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分钟。 我想将此索引转换为日期时间格式。 我已经看过并测试了论坛上看到的许多脚本,但是没有任何效果(而且我是一个新手...) 非常感谢您的帮助!
答案 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
希望这会有所帮助