数据框日期时间行过滤

时间:2018-11-19 06:01:40

标签: python dataframe row loc

我有一个包含几列和几行的数据框,我有一列“日期”(月/日/年的Hour:Min:Sec PM',我只需要从数据框中获取匹配的行该列的Hour:Min:Sec部分。该列将数据作为对象。

    df.loc[df['Date']== 'month/day/year 11:00:00 PM'].copy

仅当我指定月/日/年时才有效,但是无论白天如何,我都希望获得与时间相对应的行。有谁知道如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这是2个步骤。第一个仅使用时间创建一个中间列。第二个进行过滤。

>>> import datetime
>>> import pandas as pd
>>> df =pd.DataFrame([[datetime(2018,1,1,2,2,2),1], [ datetime(2018,1,1,3,3,3),2]], columns=['Date','Val'])
                 Date  Val
0 2018-01-01 02:02:02    1
1 2018-01-01 03:03:03    2

1)创建中间列

>>> df['new'] = df['Date'].transform(lambda x: x.time())
>>> df
                 Date  Val       new
0 2018-01-01 02:02:02    1  02:02:02
1 2018-01-01 03:03:03    2  03:03:03

2)进行过滤

>>> df[df['new'] == datetime.time(2,2,2)]
                 Date  Val       new
0 2018-01-01 02:02:02    1  02:02:02