Python 用datetime加载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,

早上好, 我对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,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