来自 df 的时隙 pandas

Time Slot from df in pandas

我正在尝试从我的 df 中的时间列开始创建时间段,它具有以下结构:

artist_name;ms_played;track_name;...date;time;week_day
Taylor Swift;35260;Wildest Dreams;...;2021-01-25;07:55;0
Edward Sharpe & The Magnetic Zeros;...2021-01-25;15:34;0
.....

例如,在早上 6 点到早上 8 点之间的所有时间,我希望它落在时间段 6-8 内,其他时间段以此类推。不幸的是,到目前为止我还没有写出任何东西,所以欢迎任何建议。感谢您的回复。

您可以借助以下代码执行此操作:

import pandas as pd
df = pd.DataFrame({'name':['Taylor Swift','Edward Sharpe & The Magnetic Zeros'],'time':['7:55','15:34']})

def timeSlot(x):
    hr = pd.to_datetime(x).hour
    if hr == 23:
        upper = 0
        lower = hr-1
    elif hr == 0:
        upper = hr+1
        lower = 23
    else:
        upper = hr+1
        lower = hr-1
    return f'{lower}-{upper}'
df['slot'] = df['time'].apply(lambda x: timeSlot(x))