我是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
我想将它们分成year
month
day
hour
和minute
。到目前为止我的尝试是:
for i in range(len(rawdate)):
x=rawdate[1].split()
date.append(x)
但是它给了我一个充满空列表的列表。我的目标是将其转换为列表列表(使用命令split
),其中新数据将以[date, time]
的形式存储到x中。然后我想使用拆分“ - ”和“:”进一步拆分。有人可以提供一些建议吗?
答案 0 :(得分: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
答案 1 :(得分: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']]
>>>
始终使用有意义的名称。
答案 2 :(得分:-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']