Python 如何按时间筛选数据帧

Python 如何按时间筛选数据帧,python,pandas,Python,Pandas,我需要根据时间过滤我的df。在读取csv文件时,我将“S2Date”列解析为日期。对于s2Time,我使用了df['s2Time']=pd.to_datetime(df[“s2Time”]),因此它的格式是时间戳。现在,我需要单独按时间查找或过滤df,即在上午9点到中午12点之间查找记录,或者考虑在15:00到16:15之间查找df以下的记录 我怎样才能做到这一点?我可以按日期进行筛选,但按时间我有问题。有没有人能帮我或给我指出正确的学习地点 我的DF: S2Saleid

我需要根据时间过滤我的df。在读取csv文件时,我将“S2Date”列解析为日期。对于s2Time,我使用了
df['s2Time']=pd.to_datetime(df[“s2Time”])
,因此它的格式是时间戳。现在,我需要单独按时间查找或过滤df,即在上午9点到中午12点之间查找记录,或者考虑在15:00到16:15之间查找df以下的记录

我怎样才能做到这一点?我可以按日期进行筛选,但按时间我有问题。有没有人能帮我或给我指出正确的学习地点

我的DF:

    S2Saleid        S2Date       S2Time 
0   180519011       2019-05-18  2020-08-13  15:15:00    
1   180519012       2019-05-18  2020-08-13  15:38:00    
2   180519013       2019-05-18  2020-08-13  15:47:00    
3   180519014       2019-05-18  2020-08-13  16:21:00    
4   180519014       2019-05-18  2020-08-13  16:21:00    

您可以使用pandas
interference\u time
方法。在按时间筛选之前,将datetime列设置为索引:

df.index = df['S2Time']
df.between_time('15:00', '16:15')

# Out:
#                       S2Saleid      S2Date              S2Time
# S2Time                                                        
# 2020-08-13 15:15:00  180519011  2019-05-18 2020-08-13 15:15:00
# 2020-08-13 15:38:00  180519012  2019-05-18 2020-08-13 15:38:00
# 2020-08-13 15:47:00  180519013  2019-05-18 2020-08-13 15:47:00
或动态设置索引以避免覆盖输入df:

df.set_index('S2Time').between_time('15:00', '16:15').reset_index()

# Out:
#                S2Time   S2Saleid      S2Date
# 0 2020-08-13 15:15:00  180519011  2019-05-18
# 1 2020-08-13 15:38:00  180519012  2019-05-18
# 2 2020-08-13 15:47:00  180519013  2019-05-18
以下内容也很有用

time1 = pd.to_datetime('2020-08-13  15:00:00').strftime('%H:%M')
time2 = pd.to_datetime('2020-01-01  16:15:00').strftime('%H:%M')
df.loc[(df['S2Time'].dt.strftime('%H:%M') > time1 ) & (df['S2Time'].dt.strftime('%H:%M') < time2)]
time1=pd.to_datetime('2020-08-13 15:00:00')。strftime('%H:%M'))
time2=pd.to_datetime('2020-01-01 16:15:00')。strftime('%H:%M'))
df.loc[(df['S2Time'].dt.strftime('%H:%M')>time1)和(df['S2Time'].dt.strftime('%H:%M')
您能添加一个可执行的df示例吗?但这只允许选择特定日期,需要3行代码,大约比我的即时方法慢4倍。@Scotty1-是的,先生,确实您的代码很快,所需时间比我的要少。但我提供了另一种解决方案,我对熊猫太陌生了。是的,这是真的,这是一个有效的解决方案。:)@是的,先生,毫无疑问。祝你今天愉快:)