使用日期时间加载txt

问题描述

早上好, 我真的是python新手,正在尝试将datatime加载到python中。我找到了各种选择,但没有一个能正确解决该问题。 我看到了这段代码,但显然无法正常工作,“因为strptime()恰好接受2个参数(给定1个)”

from datetime import datetime
data2012 = numpy.loadtxt("C:\\Users\\...\\onde_corr_2012.txt",converters={0:datetime.strptime('%m/%d/%y  %H:%M:%s')},delimiter=',')

txt文件具有以下结构:

01-01-2012 00:00,0.36,-3.42,0.76
01-01-2012 00:30,0.35,-3.45,0.75
01-01-2012 01:00,0.76
01-01-2012 01:30,-3.43,0.76
01-01-2012 02:00,-3.44,0.75
...

解决方法

尝试:

from datetime import datetime
data2012 = np.loadtxt("try.txt",converters={0:lambda t: datetime.strptime(t.decode(),'%m-%d-%Y %H:%M')},delimiter=',',dtype={
                            'names': ('time','col1','col2','col3',),'formats': ('datetime64[m]','float','float')
                                }
                     )

data2012
array([('2012-01-01T00:00',0.36,-3.42,0.76),('2012-01-01T00:30',0.35,-3.45,0.75),('2012-01-01T01:00',('2012-01-01T01:30',-3.43,('2012-01-01T02:00',-3.44,0.75)],dtype=[('time','<M8[m]'),('col1','<f8'),('col2',('col3','<f8')])

或:

df = pd.read_csv("try.txt",header=None,date_parser=[0])
df
                  0     1     2     3
0  01-01-2012 00:00  0.36 -3.42  0.76
1  01-01-2012 00:30  0.35 -3.45  0.75
2  01-01-2012 01:00  0.35 -3.42  0.76
3  01-01-2012 01:30  0.36 -3.43  0.76
4  01-01-2012 02:00  0.36 -3.44  0.75