来自 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))
我正在尝试从我的 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))