我正在将csv文件读入pandas DataFrame。 csv文件中的一列时间以'09:53:00 AM'
格式存储为字符串。
我需要将此列转换为DataFrame中的时间列。原因是我需要根据时间过滤该列 - 例如我想根据时间大于9:00:00 AM且小于02:00:00 PM过滤数据。
请注意,日期位于单独的列中。我所拥有的是:
Col 1,Col 2(date),Col3(time)
AAA,01/29/2015,9:23:00 AM
BBB,02/18/2015,3:07:00 PM
我需要得到如下结果:只有包含AAA的记录。
答案 0 :(得分:1)
您可以使用read_csv
的parse_dates
选项:
import pandas as pd
df = pd.read_csv('date.csv', parse_dates=['Col3(time)'])
并且列Col3(time)
将被解析为日期。要仅使用时间信息执行选择,您可以使用类似于日期时间列的dt
访问器:
t0, t1 = pd.to_datetime(['9:00:00 AM', '02:00:00 PM']).time
print df[(df['Col3(time)'].dt.time > t0) & (df['Col3(time)'].dt.time < t1)]
输出:
Col 1 Col 2(date) Col3(time)
0 AAA 01/29/2015 2015-09-15 09:23:00