我的数据框有两列:(i)字符串格式的日期列和(ii)int值。我想将日期字符串转换为日期对象,然后根据日期范围过滤和排序数据。将一个字符串转换为日期工作正常:
date = dateutil.parser.parse(date_string)
date = ("%02d:%02d:%02d" % (date.hour, date.minute, date.second))
如何迭代数据框中的所有值并应用解析,以便我可以使用df上的panda库对数据进行过滤和排序,如下所示?
df.sort(['etime'])
df[df['etime'].isin([begin_date, end_date])]
我的数据框数据示例如下:
etime instantaneous_ops_per_sec
3 2016-06-15T15:30:09Z 26
4 2016-06-15T15:30:14Z 26
5 2016-06-15T15:30:19Z 24
6 2016-06-15T15:30:24Z 27
答案 0 :(得分:2)
您想使用pd.to_datetime
:
df['etime'] = pd.to_datetime(df['etime'], format="%H:%M:%S")
答案 1 :(得分:0)
试试这个:
df['etime'] = pd.to_datetime(df['etime'], format="%Y%m%d %H:%M:%S")
df[df['etime'].between([begin_date, end_date])]
警告:由于您的代码显示为date
,并且您使用time
,然后对time
进行排序。结果可能不是你想要的。您通常希望过滤然后排序,但OP中的代码则相反。