问题描述
早上好, 我真的是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