gpt4 book ai didi

Python 在所有可能的变量组合中创建新的列/属性

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:53 24 4
gpt4 key购买 nike

如果我有一个包含变量 A、B、C、D、E 的数据框,我如何创建一个 for 或 while 循环来创建变量,方法是使用所有变量和所有可能的数学运算符对现有变量进行所有可能的组合 ( +,-,/,*)?

从具有以下变量的数据框开始:

A B C D E

像这样:

A B C D E A+B A+C A+D A+E A*B ...

最佳答案

解决方案

你想使用numpy

import numpy as np

vars = [1, 2, 3]

np.concatenate([
np.add.outer(vars, vars),
np.subtract.outer(vars, vars),
np.multiply.outer(vars, vars),
np.divide.outer(vars, vars)]).flatten()

看起来像:

array([ 2,  3,  4,  3,  4,  5,  4,  5,  6,  0, -1, -2,  1,  0, -1,  2,  1,
0, 1, 2, 3, 2, 4, 6, 3, 6, 9, 1, 0, 0, 2, 1, 0, 3,
1, 1])

说明

# All possible additions
print np.add.outer(vars, vars)

# All possible subtractions
print np.subtract.outer(vars, vars)

# All possible multiplications
print np.multiply.outer(vars, vars)

# All possible divisions
print np.divide.outer(vars, vars)

看起来像这样:

[[2 3 4]
[3 4 5]
[4 5 6]]

[[ 0 -1 -2]
[ 1 0 -1]
[ 2 1 0]]

[[1 2 3]
[2 4 6]
[3 6 9]]

[[1 0 0]
[2 1 0]
[3 1 1]]

关于Python 在所有可能的变量组合中创建新的列/属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com