如何在Python中生成含10个周六的随机值时间序列及排除周六的日期范围
Python实现方案
1. 生成包含10个周六的随机值时间序列
直接利用pandas.date_range指定周六频率生成目标日期,再结合numpy生成随机数值创建时间序列:
import pandas as pd import numpy as np # 生成从2000-01-01开始的10个周六日期 saturday_dates = pd.date_range(start="2000-01-01", periods=10, freq="W-SAT") # 生成对应随机数值(示例为0-100的整数,可根据需求调整范围或分布) random_vals = np.random.randint(low=0, high=101, size=10) # 创建时间序列 saturday_ts = pd.Series(random_vals, index=saturday_dates) print(saturday_ts)
说明:freq="W-SAT"会自动定位到起始日期后第一个周六,之后每周生成一个周六,确保得到连续的10个周六日期。
2. 排除日期范围中的周六
针对你提供的日期生成代码,通过日期的weekday属性筛选剔除周六(周六的weekday值为5,周一为0,周日为6):
import pandas as pd # 生成原始14天日期范围 rnge = pd.date_range(start="2000-01-01", periods=14, freq="D") # 过滤掉所有周六 filtered_dates = rnge[rnge.weekday != 5] print(filtered_dates)
也可以使用isoweekday()方法(周六对应值为6)实现相同效果:
filtered_dates = rnge[rnge.isoweekday() != 6]
内容的提问来源于stack exchange,提问作者Vipul MAHESHWARI
相关产品推荐
相关产品推荐

