我有一个看起来像这样的数据框
d = {'A': [10, 20, 30, 40], 'B': [20, 30, 40, 50],'C': [30, 40, 50, 60]}
df = pd.DataFrame(data=d)
A B C
10 20 30
20 30 40
30 40 50
40 50 60
我正在尝试构建一个循环,以便它使用一个复杂的公式创建三个新列(每次迭代一个),其中只有一个增加 10%,而其他两个在每次迭代中保持不变。
每次应用的公式为:sqrt(((A ** 2)*B)+((B ** 2)*C))
所以期望的输出是 -
A B C X_A X_B X_C
10 20 30 120.08 129.30 123.29
20 30 40 224.77 238.24 227.16
30 40 50 351.51 369.32 352.14
40 50 60 496.79 519.13 494.98
实现此目标的最简单方法是什么?
请您参考如下方法:
你有两个问题。
第一个可能你没有意识到它。 您的数据数据类型是字符串。 我们需要先转换成int
df=df.astype(int)
然后我们使用 div 和 add
pd.concat([df,df.div(10).add(df.sum(1),0).add_prefix('X_')],axis=1)
Out[1082]:
A B C X_A X_B X_C
0 10 20 30 61 62 63
1 20 30 40 92 93 94
2 30 40 50 123 124 125
3 40 50 60 154 155 156
