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

如何用Python嵌套循环生成指定顺序的DataFrame?

解决DataFrame按指定规则组合的问题

你原来的循环逻辑顺序错了,外层遍历F会导致每个F元素后跟着所有P+A的组合,完全不符合你要的一一对应关系。下面给你两种可行的解决方案:

方法一:调整循环逻辑

正确的思路是先遍历每个P元素,每个P下再遍历A的3个元素,同时按顺序取F中对应的元素,每次把一组(F, P, A)添加到列表中:

import pandas as pd

# 示例数据,替换成你的真实列表
F = [f"F{i}" for i in range(9)]
P = [f"P{i}" for i in range(3)]
A = [f"A{i}" for i in range(3)]

df_test3 = []
f_idx = 0
# 遍历每个P元素
for p_val in P:
    # 每个P对应3个A元素
    for a_val in A:
        # 取当前对应的F元素,组成一组添加
        df_test3.append([F[f_idx], p_val, a_val])
        f_idx += 1

# 转换为DataFrame
result_df = pd.DataFrame(df_test3, columns=["F", "P", "A"])
print(result_df)

方法二:直接构造DataFrame(更高效)

不用写循环,利用numpy的重复/平铺函数直接生成对应列,再创建DataFrame,代码更简洁高效:

import pandas as pd
import numpy as np

# 示例数据,替换成你的真实列表
F = [f"F{i}" for i in range(9)]
P = [f"P{i}" for i in range(3)]
A = [f"A{i}" for i in range(3)]

result_df = pd.DataFrame({
    "F": F,
    # 每个P元素重复3次
    "P": np.repeat(P, 3),
    # A列表整体重复3次
    "A": np.tile(A, 3)
})
print(result_df)

两种方法都会生成你需要的表格结构,第二种方法更适合处理大规模数据,避免手动循环的冗余。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:30:21