You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成含日期、房型等指定迭代值的Pandas DataFrame?

解决方案

不用嵌套循环,利用Pandas的笛卡尔积生成功能可以更高效地实现需求,避免循环中反复修改DataFrame的性能问题。以下是完整实现代码:

import pandas as pd

# 定义所有参数
start_date = "2023-08-01"
end_date = "2023-09-01"
house_types = [1, 2, 3, 4]
# 补充6位经纪人,可替换为实际名字
realtors = ["Alex", "Maggie", "Ginger", "Pat", "Sam", "Taylor"]
neighborhood = "a"
zipcode = "10018"

# 生成指定范围的连续日期
dates = pd.date_range(start=start_date, end=end_date, freq="D")

# 生成日期、房型、经纪人的全组合(笛卡尔积)
full_combinations = pd.MultiIndex.from_product(
    [dates, house_types, realtors],
    names=["Date", "House type", "Realtor"]
)

# 转换为DataFrame并添加固定列
df = full_combinations.to_frame(index=False)
df["Neighborhood"] = neighborhood
df["Zipcode"] = zipcode

# 调整列顺序以匹配预期格式
df = df[["Date", "House type", "Neighborhood", "Realtor", "Zipcode"]]

# 可选:将日期格式化为MM/DD/YY样式(和示例一致)
df["Date"] = df["Date"].dt.strftime("%m/%d/%y")

# 查看结果
print(df.head(20))

关键说明:

  • 高效生成日期:用pd.date_range替代while循环+append,代码更简洁,处理大范围日期时性能优势明显。
  • 笛卡尔积生成组合:pd.MultiIndex.from_product直接生成所有日期、房型、经纪人的配对组合,完美满足“每个日期对应所有房型与经纪人组合”的需求,无需手动写嵌套循环。
  • 固定列赋值:社区和邮编全局唯一,直接给整列赋值即可,无需逐行处理。

运行后,每天会自动生成24行(4种房型×6位经纪人)数据,完全符合需求。

内容的提问来源于stack exchange,提问作者pars1221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:10:53