我将csv文件导入Python,它看起来像
ric date time price
VOD 01-AUG-2013 8:08:53.241 156
VOD 03-JAN-2013 8:25:43.241 129
VOD 07-MAR-2013 8:03:31.241 128
VOD 18-AUG-2013 8:18:53.241 120
... ... ... ...
我需要按date
排序此文件,然后按time
从最旧到最新排序。
但是,我必须首先格式化date
和time
。但我不知道该怎么做。我厌倦了首先格式化date
,但它确实有效。
我的代码是:
import pandas as pd
import time
import datetime
from datetime import datetime
path = 'C:\\sample.csv'
data= pd.read_csv(path)
sorted(data, key=lambda each_dict: datetime.strptime(each_dict['date'], '%d-%b-%y'))
有人可以帮助我对date
和time
进行格式化和排序吗?谢谢!
答案 0 :(得分:1)
您可以使用以下格式将日期和时间转换为datetime
对象:
时间:
'%H:%M:%S.%f'
约会:
'%d-%b-%Y'
并使用一个元组,其第一项是日期,第二项是时间:
sorted(data,
key=lambda each_dict: (datetime.strptime(each_dict['date'], '%d-%b-%Y'),
datetime.strptime(each_dict['time'], '%H:%M:%S.%f'))
答案 1 :(得分:0)
尝试pandas,你会爱上它:
from __future__ import print_function
import pandas as pd
df = pd.read_csv('data.csv', delimiter=r'\s+')
df['date'] = pd.to_datetime(df['date'] + ' ' + df['time'])
del df['time']
print(df.sort(['date'], ascending=[0]).to_string(index=False))
输出:
ric date price
VOD 2013-08-18 08:18:53.241 120
VOD 2013-08-01 08:08:53.241 156
VOD 2013-03-07 08:03:31.241 128
VOD 2013-01-03 08:25:43.241 129