使用column0 = datetime对象和column1 = float值将多个txt文件导入numpy数组

时间:2015-02-07 05:31:44

标签: python python-2.7 numpy

我有很多文本文件,如下所示:

#comment
2012-01-01 00:00:00, 6542736.60466
2012-01-01 00:00:05, 6542736.60466
2012-01-01 00:00:10, 6568774.53588
2012-01-01 00:00:15, 6594812.46709
...
2012-01-01 23:59:55, 6494801.44322

每天都有一个文本文件,所以最终我想将数据堆叠在一个数组的文本文件中,以便时间无缝地继续(例如从2012-01-01 23:59:55到2012- 01-02 00:00:00)

monitor1="list of file names in a directory"

for x in monitor1:
    x=np.genfromtxt((filepath+"\\"+x),comments='#',delimiter=',')
monitor1array=np.vstack(monitor1)
for x in monitor1array[:,0]:
    x=datetime.datetime.strptime(x, "%Y-%m-%d %H:%M:%S")

此代码似乎不起作用。 1)它似乎无法在第一个for循环中创建数组列表。 2)它不会将datetime识别为列0的类型。

请帮忙!

1 个答案:

答案 0 :(得分:1)

我认为您将获得更好的体验reading csvs with pandas

In [11]: import pandas as pd

In [12]: pd.read_csv('foo.csv', header=None, comment='#')
Out[12]:
                     0              1
0  2012-01-01 00:00:00  6542736.60466
1  2012-01-01 00:00:05  6542736.60466
2  2012-01-01 00:00:10  6568774.53588
3  2012-01-01 00:00:15  6594812.46709

日期应该正确解析,如果不在列上使用pd.to_datetime

In [13]: df[0] = pd.to_datetime(df[0])