我有一个表示每日时间表的CSV文件,例如
1, a, b, 10:00, 12:00
意味着从a
到b
的旅程1每天10:00起飞,到达12:00。
我需要将这些数据加载到Pandas数据框中并方便地处理它,例如查找特定时间之间的旅行或按出发时间排序。
在Pandas中仅表示日期的小时和分钟部分的推荐方法是什么?
答案 0 :(得分:2)
我只是将它存储为时间对象。您将能够根据其他时间对象进行排序/切片(比为H存储一个列更方便,对于Min存储一个更方便)。
前:
import datetime as dt
t0 = dt.time(hour=12, minute=10)
print t0.hour
12
将时间对象放入数据帧(将它们作为字符串加载,然后使用apply转换为时间对象)应该非常简单。
如果您需要帮助,请告诉我。
答案 1 :(得分:0)
如果有这样的文件:
<强> test.csv 强>
trip,from,to,start,end
1,a,b,10:00,12:00
2,d,c,09:00,10:00
您可以使用以下方式导入它:
>>> df = pd.read_csv('test.csv', index_col=0, parse_dates=[3, 4])
>>> df
from to start end
trip
1 a b 10:00 12:00
2 d c 09:00 10:00
然后你可以查询它:
>>> df[df['start'] > '9:30']
from to start end
trip
1 a b 2015-01-26 10:00:00 2015-01-26 12:00:00
或者只使用小时作为整数:
>>> df['hour'] = df['start'].apply(lambda x: x.hour)
>>> df
from to start end hour
trip
1 a b 2015-01-26 10:00:00 2015-01-26 12:00:00 10
2 d c 2015-01-26 09:00:00 2015-01-26 10:00:00 9