Python 用datetime加载txt
早上好, 我对python非常陌生,我正在尝试将datatime加载到python中。我已经找到了各种各样的选择,但没有一个能正确地解决这个问题。 我看到了这段代码,但它显然不起作用,“因为strtime()只接受2个参数(给定1个参数)” txt文件具有以下结构:Python 用datetime加载txt,python,numpy,datetime,Python,Numpy,Datetime,早上好, 我对python非常陌生,我正在尝试将datatime加载到python中。我已经找到了各种各样的选择,但没有一个能正确地解决这个问题。 我看到了这段代码,但它显然不起作用,“因为strtime()只接受2个参数(给定1个参数)” 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.35,-3.42,0.76 01-01-2012 01:30,
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.35,-3.42,0.76
01-01-2012 01:30,0.36,-3.43,0.76
01-01-2012 02:00,0.36,-3.44,0.75
...
尝试:
什么是
loadtxt
?错误消息本身很清楚:strtime
需要两个参数,比如:datetime.strtime(“2020”,“Y”)
。也许converter
应该是一个函数字典,比如{0:lambda s:datetime.strtime(s,'%m/%d/%Y%H:%m:%s')}
。谢谢,我刚才提出了你的建议,但问题仍然存在。我想应用此处报告的内容:>但是strpdate2nume在matplotlib.dates中不存在,所以我找到了strptime,但我无法将其应用于加载日期/时间字符串的数据,格式为01-01-2012 02:00
,正确的strptime代码应该是“%d-%m-%Y%H:%m'
(假设第一天;如果需要,调整顺序)。顺便说一句,您可能需要查看pandas
,查看类似于这些表的数据。您正在尝试在numpy数组中加载不同的数据类型。使用structured
array绝对可以做到这一点。但最直接的方法是使用pd.read_csv()
将其加载到pandas中。非常感谢,我不希望使用pandas,但它非常快速和直观,我将更经常地使用它。使用np.loadtxt的解决方案将每一行“保存”为文本,因此在处理数据时不切实际。再次非常感谢大家。
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.35,-3.42,0.76
01-01-2012 01:30,0.36,-3.43,0.76
01-01-2012 02:00,0.36,-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', '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', 0.35, -3.42, 0.76),
('2012-01-01T01:30', 0.36, -3.43, 0.76),
('2012-01-01T02:00', 0.36, -3.44, 0.75)],
dtype=[('time', '<M8[m]'), ('col1', '<f8'), ('col2', '<f8'), ('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