gpt4 book ai didi

python-3.x - 对 pandas 列执行迭代减法和除法运算的有效方法

转载 作者:行者123 更新时间:2023-12-01 02:59:46 28 4
gpt4 key购买 nike

我有以下数据框-

      A    B   C  Result
0 232 120 9 91
1 243 546 1 12
2 12 120 5 53

我想执行以下操作-

      A    B   C  Result   A-B/A+B   A-C/A+C   B-C/B+C
0 232 120 9 91 0.318182 0.925311 0.860465
1 243 546 1 12 -0.384030 0.991803 0.996344
2 12 120 5 53 -0.818182 0.411765 0.920000

我正在使用

 df['A-B/A+B']=(df['A']-df['B'])/(df['A']+df['B'])
df['A-C/A+C']=(df['A']-df['C'])/(df['A']+df['C'])
df['B-C/B+C']=(df['B']-df['C'])/(df['B']+df['C'])

我认为这是一种非常粗鲁和丑陋的做法。怎样做才更正确?

最佳答案

您可以执行以下操作:

# take columns in a list except the last column
colnames = df.columns.tolist()[:-1]

# compute
for i, c in enumerate(colnames):
if i != len(colnames):
for k in range(i+1, len(colnames)):
df[c + '_' + colnames[k]] = (df[c] - df[colnames[k]]) / (df[c] + df[colnames[k]])

# check result
print(df)

A B C Result A_B A_C B_C
0 232 120 9 91 0.318182 0.925311 0.860465
1 243 546 1 12 -0.384030 0.991803 0.996344
2 12 120 5 53 -0.818182 0.411765 0.920000

关于python-3.x - 对 pandas 列执行迭代减法和除法运算的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53973460/

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