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

使用combinations生成元组批量创建DataFrame新列仅生成1列问题求助

问题原因

你当前的代码仅提取了combinations生成结果中的第一个二元组b[0]执行逻辑,没有对所有生成的二元组做遍历操作,因此只能生成1列结果,无法达到批量生成多列的预期。

修复方案

遍历所有生成的二元组,将每组的两个数值分别代入判断逻辑生成对应列即可:

import pandas as pd
import pandas_ta as ta
import numpy as np
from itertools import product, combinations

# 生成所有10到49的不重复二元组合,总共有C(40,2)=780个组合
b = list(combinations(range(10, 50),2))
choices = [1, -1]

# 遍历每个组合批量生成新列
for sma_pair in b:
    s_left, s_right = sma_pair
    conditions = [
        df[f'sma_{s_left}'] > df[f'sma_{s_right}'],
        df[f'sma_{s_left}'] < df[f'sma_{s_right}']
    ]
    df[f'sma_{s_left} & sma_{s_right}'] = np.select(conditions, choices, default=0)
补充说明

如果你不需要780这么多列,可以调整combinations中range的范围,比如调整为range(10, 18)就能生成28个组合,接近你提到的30个列的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:24:05