使用 .datetime 查找时间是在另一个时间之前还是之后

Finding if the time is before or after another time with .datetime

所以我在数据框中有一列数据,它是 .datetime 中的时间,在 HH:MM:SS 中。我只想检查时间是在第一班还是第二班,我在最后显示了这段代码,但我一直收到错误:

TypeError: 'DataFrame' 对象不可调用

有人有什么想法吗?提前致谢!

if df_data_time(df_data_time['Time']).between('00:00:00','11:59:59') == True:
    df_data_time['Time'] = 'Shift 1'
if df_data_time(df_data_time['Time']).between('12:00:00','23:59:59') == True:
    df_data_time['Time'] = 'Shift 2'

您正在寻找 pd.Series.between_time():

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.between_time.html.

但是我会建议您通过首先将新列“Shift”设置为“Shift 1”然后通过布尔索引将“Shift”中的必要条目更改为“Shift 2”来简化代码:

df_data_time['Shift'] = 'Shift 1'
df_data_time.loc[df_data_time.Time.between_time('12:00:00','23:59:59'), 'Shift'] = 'Shift 2'