2015-05-06 1 views
-1

Я новичок в python, и я был бы очень признателен за помощь. У меня есть данные, полученные от метеорологической станции (rawdate) в формате 2015-04-26 00:00:48 как этотКак разделить даты из файла данных о погоде

Date,Ambient Temperature (C),Wind Speed (m/s) 
2015-04-26 00:00:48,10.75,0.00 
2015-04-26 00:01:48,10.81,0.43 
2015-04-26 00:02:48,10.81,0.32 

и я хотел бы разделить их на yearmonthdayhour и minute. Моя попытка до сих пор такова:

for i in range(len(rawdate)): 
    x=rawdate[1].split() 
    date.append(x) 

но он дает мне список, полный пустых списков. Моя цель - преобразовать это в список списков (используя команду split), где новые данные будут сохранены в x в форме [date, time]. Затем я хочу разделить дальше, используя split с «-» и «:». Может кто-нибудь предложить какой-то совет?

+0

Можете ли вы подробно рассказать о том, какие магазины/магазины? Это список или строка? Он содержит несколько дат или только один? – SuperBiasedMan

+0

Rawdate - это просто имя, которое я использую. Эти данные берутся из файла .txt и содержат 7 строк данных, из которых первая - это дата в формате, который я опубликовал. Файл содержит данные в последовательных строках в течение всего дня. –

+1

См. Http://stackoverflow.com/help/mcve и соответствующим образом отредактируйте свой вопрос, чтобы люди могли легче ответить на него. – GreenAsJade

ответ

2

Вашего код явно сломан, потому что вы не используете петлю в любом случае, кроме повторения тех же операций на rawdate[1], len(rawdate) раз.

Возможно, что вы имели в виду i, где у вас есть 1.

Для этого, чтобы понять, ваш rawdate должен быть список строк (как это было предложено @SuperBiasedMan)

Может быть что-то близкое к тому, что вы были после, как это:

>>> dates = [] 
>>> rawdates = ['2015-04-26 00:00:48', '2015-04-26 00:00:49'] 
>>> for i in range(len(rawdates)): 
... the_date = rawdates[i].split() 
... dates.append(the_date) 
... 
>>> dates 
[['2015-04-26', '00:00:48'], ['2015-04-26', '00:00:49']] 
>>> 

Всегда используйте значащие имена.

+0

Большое спасибо, вы были правы! –

-1

rawdate[1] всегда будет возвращать причину 0'2015...'[1] is 0.

>>>a = '2015-04-26 00:00:48' 
>>>print([date for date in [i for i in a.split(' ')][0].split('-')] + [time for time in [i for i in a.split(' ')][1].split(':')]) 
>>>['2015', '04', '26', '00', '00', '48'] 
3
>>> from datetime import datetime 

>>> str_date = '2015-04-26 00:00:48' 
>>> datte = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S') 
>>> t = datte.timetuple() 
>>> y, m, d, h, min, sec, wd, yd, i = t 
>>> y 
2015 
>>> m 
4 
>>> min 
0 
>>> sec 
48 
+0

'strptime()', 'timetuple()': nice! – GreenAsJade

Смежные вопросы