pandas根据日期范围与用户输入自动填充表格的实现方法
Python按日期区间批量生成表格行实现方案
核心逻辑是先把用户输入的起止日期解析为可运算的日期对象,逐天遍历日期区间,为每个日期拼接固定的旅行社、房型、房价字段生成行数据,最后统一导出为表格文件。
前置依赖
先安装需要的第三方库,执行命令:pip install pandas python-dateutil
如果需要导出Excel格式,额外安装依赖:pip install openpyxl
完整交互脚本
import pandas as pd from datetime import timedelta from dateutil import parser # 采集用户输入 travel_agent = input("请输入旅行社名称:").strip() room_type = input("请输入房型:").strip() room_price = float(input("请输入单天房价(输入数字即可):").strip()) start_date_input = input("请输入起始日期(示例:1/4/22 代表2022年4月1日):").strip() end_date_input = input("请输入结束日期(示例:10/5/22 代表2022年5月10日):").strip() # 解析输入的日期为标准时间对象,dayfirst=True代表按「日/月/年」顺序识别 start_date = parser.parse(start_date_input, dayfirst=True) end_date = parser.parse(end_date_input, dayfirst=True) record_list = [] current_date = start_date # 逐天遍历日期区间 while current_date <= end_date: record_list.append({ "TRAVEL_AGENT": travel_agent, "DATE": current_date.strftime("%-d/%-m/%y"), "ROOM_TYPE": room_type, "ROOM_PRICE": room_price }) current_date += timedelta(days=1) # 转为表格结构 result_df = pd.DataFrame(record_list) # 保存为CSV文件,用utf-8-sig编码避免Excel打开乱码 result_df.to_csv("房价记录表.csv", index=False, encoding="utf-8-sig") # 需导出Excel的话注释掉上面的CSV保存行,打开下面这行 # result_df.to_excel("房价记录表.xlsx", index=False) print("表格生成完成,前5行预览:") print(result_df.head())
使用说明
- 运行脚本后按提示依次输入对应信息,即可自动生成目标表格。比如输入旅行社
A、房型DBL、房价30、起始日期1/4/22、结束日期10/5/22,就会自动生成区间内共40条每日记录,和给出的示例效果完全一致。 - 如果你习惯按「月/日/年」的格式输入日期,把代码里
parser.parse的参数dayfirst=True改为dayfirst=False即可。 - Windows系统下如果输出的日期带前导零(比如显示
01/04/22而非1/4/22),把日期格式化部分的"%-d/%-m/%y"替换为"%#d/%#m/%y"即可。
内容的提问来源于stack exchange,提问作者george99gr
相关产品推荐
相关产品推荐

