如何向pandas数据框df_planned的order_date列插入2021年10月随机日期
实现方案说明
可以通过循环实现该需求,以下是具体实现方法,同时也提供更高效的非循环向量化方案供你选择:
第一步:基于已编写的函数生成10月全量日期池
你提供的日期生成函数可以直接用来生成2021年10月的所有日期(共31天),原有代码如下:
import datetime def new(test_date,K): res = [test_date + datetime.timedelta(days=idx) for idx in range(K)] return res test_date = datetime.datetime(2021, 10, 1) # 生成2021年10月所有日期的列表 oct_date_pool = new(test_date, 31)
第二步:循环生成300个随机可重复日期
导入随机数模块后循环300次,每次从日期池中随机抽取1个日期,最终赋值给数据框的order_date列即可:
import random random_dates = [] # 循环300次抽取随机日期 for _ in range(300): random_dates.append(random.choice(oct_date_pool)) # 赋值到数据框 df_planned['order_date'] = random_dates
更推荐的非循环高效方案
如果数据量较大,更推荐使用numpy的向量化随机抽取方法,无需循环性能更好:
import numpy as np df_planned['order_date'] = np.random.choice(oct_date_pool, size=300, replace=True)
其中replace=True参数指定允许重复抽取,完全匹配需求。
补充说明
如果需要将日期转换为字符串格式(如2021-10-01),可以在赋值后新增格式转换步骤:
df_planned['order_date'] = df_planned['order_date'].dt.strftime('%Y-%m-%d')
内容的提问来源于stack exchange,提问作者user13696679
相关产品推荐
相关产品推荐

