gpt4 book ai didi

Python-数据帧 : Multiply multiple columns by another column and save in new columns

转载 作者:太空宇宙 更新时间:2023-11-04 04:51:07 28 4
gpt4 key购买 nike

我找不到这样做的有效方法。我在 Python 中有以下 DataFrame,列从 A 到 Z

     A    B    C ...   Z
0 2.0 8.0 1.0 ... 5.0
1 3.0 9.0 0.0 ... 4.0
2 4.0 9.0 0.0 ... 3.0
3 5.0 8.0 1.0 ... 2.0
4 6.0 8.0 0.0 ... 1.0
5 7.0 9.0 1.0 ... 0.0

我需要将 B 到 Z 的每一列乘以 A,(B x A,C x A,...,Z x A),并将结果保存在新列(R1,R2 ... , R25).我会有这样的东西:

     A    B    C ...   Z    R1   R2  ...  R25
0 2.0 8.0 1.0 ... 5.0 16.0 2.0 ... 10.0
1 3.0 9.0 0.0 ... 4.0 27.0 0.0 ... 12.0
2 4.0 9.0 0.0 ... 3.0 36.0 0.0 ... 12.0
3 5.0 8.0 1.0 ... 2.0 40.0 5.0 ... 10.0
4 6.0 8.0 0.0 ... 1.0 48.0 0.0 ... 6.0
5 7.0 9.0 1.0 ... 0.0 63.0 7.0 ... 0.0

我能够使用以下代码计算结果,但从这里我需要与原始 df 合并。听起来效率不高。必须有一种简单/干净的方法来做到这一点。

df.loc[:,'B':'D'].multiply(df['A'], axis="index")

这是一个例子,我的真实 DataFrame 有 160 列 x 16k 行。

最佳答案

通过list理解创建新的列名然后join转为原文:

df1 = df.loc[:,'B':'D'].multiply(df['A'], axis="index")
df1.columns = ['R{}'.format(x) for x in range(1, len(df1.columns) + 1)]

df = df.join(df1)
print (df)
A B C Z R1 R2
0 2.0 8.0 1.0 5.0 16.0 2.0
1 3.0 9.0 0.0 4.0 27.0 0.0
2 4.0 9.0 0.0 3.0 36.0 0.0
3 5.0 8.0 1.0 2.0 40.0 5.0
4 6.0 8.0 0.0 1.0 48.0 0.0
5 7.0 9.0 1.0 0.0 63.0 7.0

关于Python-数据帧 : Multiply multiple columns by another column and save in new columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48299312/

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