根据日期范围对熊猫数据帧中的数据进行排序和过滤

时间:2016-06-16 18:44:51

标签: python pandas filter dataframe

我的数据框有两列:(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

2 个答案:

答案 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中的代码则相反。