Combining pandas with datetime



我有一个包含开始和结束日期的数据帧。我正在尝试用以下条件创建第三列:

  • if t <24小时;返回起始和结束日期之间的实际差值
  • if dt>24小时;回程开始日期+ 24小时

我已经能够创建一个24小时差的列,但是我不能创建一个可以执行上述操作的loc语句。任何帮助吗?

df2['end_shutdown_analysis'] = df2['Shutdown timestamp'] + timedelta(hours=24)

您可以尝试通过np.where():

import numpy as np
df2['end_shutdown_analysis'] =np.where(
df2['Shutdown timestamp'].dt.hour<24, # condition
df['start']-df['end'],                # value if true
df2['Start']+pd.DateOffset(hours=24)  # else value.
)

vialoc:

m=df2['Shutdown timestamp'].dt.hour<24
df.loc[m,'end_shutdown_analysis']=df['start']-df['end']
df.loc[~m,'end_shutdown_analysis']=df2['start']+pd.DateOffset(hours=24)

注意:你也可以用pd.Timedelta(hours=24)代替pd.DateOffset(hours=24)

最新更新