如何用Python Pandas生成带依赖式日期列的DataFrame
生成带销售、发货、交付日期的Pandas DataFrame
实现步骤与代码
1. 导入依赖库
需要用到pandas处理表格数据,numpy生成随机数:
import pandas as pd import numpy as np
2. 生成2022年的50个随机销售日期
先定义2022年的起止日期,再通过随机天数偏移生成目标日期:
# 定义2022年时间范围 start_date = '2022-01-01' end_date = '2022-12-31' # 计算起止日期间的总天数 total_days = (pd.to_datetime(end_date) - pd.to_datetime(start_date)).days # 生成50个随机日期并创建DataFrame random_day_offsets = np.random.randint(0, total_days + 1, size=50) df = pd.DataFrame({ 'Date of sale': pd.to_datetime(start_date) + pd.to_timedelta(random_day_offsets, unit='D') })
3. 生成依赖型的发货与交付日期
分别在销售日期、发货日期基础上追加随机天数(示例中发货延迟设为1-7天,交付延迟设为1-10天,可按需调整范围):
# 发货日期:销售日期 + 1-7天随机延迟 df['Date of shipment'] = df['Date of sale'] + pd.to_timedelta(np.random.randint(1, 8, size=50), unit='D') # 交付日期:发货日期 + 1-10天随机延迟 df['Date of delivery'] = df['Date of shipment'] + pd.to_timedelta(np.random.randint(1, 11, size=50), unit='D')
4. 查看结果
执行df.head()可查看前5行示例数据,输出类似:
Date of sale Date of shipment Date of delivery 0 2022-04-02 2022-04-06 2022-04-09 1 2022-09-18 2022-09-22 2022-09-27 2 2022-01-15 2022-01-19 2022-01-21
关键提示
- 随机延迟的天数范围可通过修改
np.random.randint()的参数调整,比如想让发货延迟在3-10天,就改成np.random.randint(3, 11, size=50) - 所有日期列自动转为
datetime64类型,支持后续的日期筛选、运算等操作
内容的提问来源于stack exchange,提问作者furgun
相关产品推荐
相关产品推荐

