python判断一列数据大小,对另一列日期进行处理

python判断订单时间节点列数据大小,大于18则日期加1天,有1千多万行数据,处理起来很慢,请教各位大神怎么优化。

def timeadd(n):
    if n >= 18:
        return df4['订单日期'] + datetime.timedelta(days=1)
    else:
        df4['订单日期']
df4['订单日期1'] = df4.apply(lambda x: timeadd(x['订单时间节点']),axis = 1)
阅读 2k
1 个回答

给你提两点建议,速度应该(必须)可以提上去:

  1. 把要加的时间间隔存成变量 td_day1 = datetime.timedelta(days=1),每次使用时用变量 td_day1
  2. 不要使用 DataFrame.apply,这方法本身虽然方便,但速度没有优势,建议直接用 np.where,比如 df['订单日期1'] = np.where(df['订单时间节点'] > 18, df['订单日期'] + td_day1, df['订单日期'])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题