我有一个包含10列整数的数据框.我想创建一个新专栏,如下所示:
df["newcol"] = df[col1]*(11-1)+df["col2"]*(11-2)+..+df[col10]*(11-10)
我已经做了上面的工作,而且很管用,但我只是想知道是否有一种毒蛇般的方法来做到这一点.不是这样写下来的,因为有时候我的数据框会有100多列.
我有一个包含10列整数的数据框.我想创建一个新专栏,如下所示:
df["newcol"] = df[col1]*(11-1)+df["col2"]*(11-2)+..+df[col10]*(11-10)
我已经做了上面的工作,而且很管用,但我只是想知道是否有一种毒蛇般的方法来做到这一点.不是这样写下来的,因为有时候我的数据框会有100多列.
df['newcol'] = df.mul(11 - np.r_[1: df.shape[1] + 1]).sum(1)
>>> df
0 1 2 3 4 5 6 7 8 9
0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
1 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
>>> df.mul(11 - np.r_[1: df.shape[1] + 1])
0 1 2 3 4 5 6 7 8 9
0 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0
1 10.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0
>>> df.mul(11 - np.r_[1: df.shape[1] + 1]).sum(1)
0 55.0
1 55.0
dtype: float64