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

如何遍历pandas DataFrame每行生成对应API请求的JSON payload?

Pandas逐行构造对齐JSON payload的解决方案

错误原因

你使用的两层嵌套循环会让每一个Date列的取值和所有Hours列的取值配对,最终生成两列的笛卡尔积,无法实现行对齐的取值逻辑。

实现方案

方案1:逐行遍历(iterrows,易读性最高)

直接遍历DataFrame的每一行,从行数据中按需取对应字段构造payload:

for _, row in df.iterrows():
    payload = {
        "day": row["Date"],
        "shopCapacity": int(row["Hours"]) # 示例中Hours为字符串类型,按需转为整数符合预期格式
    }
    print(payload)

方案2:同步遍历两列(zip,性能更高)

如果仅需要取固定两列的值,可以用zip()将两列打包同步遍历,避免全量读取行数据:

for date, hours in zip(df["Date"], df["Hours"]):
    payload = {
        "day": date,
        "shopCapacity": int(hours)
    }
    print(payload)

方案3:批量生成所有payload(pandas内置方法,代码最简洁)

如果不需要逐行处理额外逻辑,直接重命名列名后调用to_dict方法即可一步得到所有payload的列表:

payload_list = df.rename(columns={"Date": "day", "Hours": "shopCapacity"})\
                 .astype({"shopCapacity": int})\
                 .to_dict("records")

# 遍历列表即可得到单个payload
for payload in payload_list:
    print(payload)

以上三种方案的输出均为你需要的行对齐结果:

{'day': '2021-09-01', 'shopCapacity': 88}
{'day': '2021-09-02', 'shopCapacity': 55}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:00:04