Я пытаюсь прочитать во многих файлах. Каждый файл представляет собой ежедневный файл данных с данными каждые 10 минут. данные в каждом файле вроде «фрагментированное вверх», как это:Чтение в определенные строки даты из файла с pandas python
2015-11-08 00:10:00 00:10:00
# z speed dir W sigW bck error
30 3.32 111.9 0.15 0.12 1.50E+05 0
40 3.85 108.2 0.07 0.14 7.75E+04 0
50 4.20 107.9 0.06 0.15 4.73E+04 0
60 4.16 108.5 0.03 0.19 2.73E+04 0
70 4.06 93.6 0.03 0.23 9.07E+04 0
80 4.06 93.8 0.07 0.28 1.36E+05 0
2015-11-08 00:20:00 00:10:00
# z speed dir W sigW bck error
30 3.79 120.9 0.15 0.11 7.79E+05 0
40 4.36 115.6 0.04 0.13 2.42E+05 0
50 4.71 113.6 0.07 0.14 6.84E+04 0
60 5.00 113.3 0.13 0.17 1.16E+04 0
70 4.29 94.2 0.22 0.20 1.38E+05 0
80 4.54 94.1 0.11 0.25 1.76E+05 0
2015-11-08 00:30:00 00:10:00
# z speed dir W sigW bck error
30 3.86 113.6 0.13 0.10 2.68E+05 0
40 4.34 116.1 0.09 0.11 1.41E+05 0
50 5.02 112.8 0.04 0.12 7.28E+04 0
60 5.36 110.5 0.01 0.14 5.81E+04 0
70 4.67 95.4 0.14 0.16 7.69E+04 0
80 4.56 95.0 0.15 0.21 9.84E+04 0
...
Файл продолжается, как это каждые 10 минут на весь день. Имя файла для этого файла - 151108.mnd. Я хочу, чтобы мой код читался во всех файлах, которые для новичка так 1511 ?? .ndnd, и я хочу, чтобы мой код читал в каждом дневном файле целый месяц, хватал все строки datetime, так что пример частичного файла данных, который я только что показал Я бы хотел, чтобы мой код хватал 2015-11-08 00:10:00, 2015-11-08 00:20:00, 2015-11-08 00:30:00 и т. Д. Хранить как переменные, а затем перейти к на следующий день (151109.mnd) и захватить все строки даты и времени и сохранить в качестве переменной даты и добавить к ранее сохраненным датам. И так далее и т. Д. Весь месяц. Вот код, который я до сих пор:
import pandas as pd
import glob
import datetime
filename = glob.glob('1511??.mnd')
data_nov15_hereford = pd.DataFrame()
frames = []
dates = []
counter = 1
for i in filename:
f_nov15_hereford = pd.read_csv(i, skiprows = 32)
for line in f_nov15_hereford:
if line.startswith("20"):
print line
date_object = datetime.datetime.strptime(line[:-6], '%Y-%m-%d %H:%M:%S %f')
dates.append(date_object)
counter = 0
else:
counter += 1
frames.append(f_nov15_hereford)
data_nov15_hereford = pd.concat(frames,ignore_index=True)
data_nov15_hereford = data_nov15_hereford.convert_objects(convert_numeric=True)
print dates
Этот код имеет некоторые проблемы, так как при печати даты он печатает две копии каждой даты, и он также выводит только первую дату каждого файла так 2015-11 -08 00:10:00, 2015-11-09 00:10:00 и т. Д. Это не происходит по очереди в каждом файле, а затем, когда все даты в этом файле хранятся, переходят к следующему файлу, например Я хочу. Вместо этого он просто захватывает первую дату в каждом файле. Любая помощь по этому коду? Есть ли более простой способ сделать то, что я хочу? Благодаря!
Это, кажется, отлично работает! Моя единственная жалоба заключается в том, что когда я печатаю даты, она все равно дает мне 2 набора. Или если я напечатаю np.форма (даты) Я получаю две формы (2046L,) (2046L,) – HM14
Ничего, я думаю, что это проблема с моим ноутбуком, а не с кодом! Спасибо! – HM14