我有一个包含几列和几行的数据框,我有一列“日期”(月/日/年的Hour:Min:Sec PM',我只需要从数据框中获取匹配的行该列的Hour:Min:Sec部分。该列将数据作为对象。
df.loc[df['Date']== 'month/day/year 11:00:00 PM'].copy
仅当我指定月/日/年时才有效,但是无论白天如何,我都希望获得与时间相对应的行。有谁知道如何做到这一点?
答案 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