Python DataFrame:将多个列乘以另一列并保存在新列中

2024-07-04 07:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我找不到一个有效的方法来做那件事。 下面是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,(bxa,cxa,…,zxa),并将结果保存在新列上(R1,R2…,R25)。 我想要这样的东西:

^{pr2}$

我可以使用下面的代码计算结果,但从这里我需要与原始df合并。听起来效率不高。必须有一个简单/干净的方法来做那件事。在

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

举个例子,我真正的数据帧有160列x16k行。在


Tags: 方法代码dataframedflocmultiply效率r2
1条回答
网友
1楼 · 发布于 2024-07-04 07:48:42

通过list理解创建新列名,然后^{}到原始列名:

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

相关问题 更多 >

    热门问题