将数据帧的特定列与常量标量值相乘

Kor*_*ain 2 python multiplication dataframe pandas

如何仅将数据帧的特定列乘以常数值?

df0 = pd.DataFrame({'A' : 1.,
                    'B' : 1,
                    'C' : 1,
                    'D' : np.array([1] * 4,dtype='int32')})

mult_by_two = df0.iloc[:,2:].mul(2)
print mult_by_two
Run Code Online (Sandbox Code Playgroud)

我明白了:

   C  D
0  2  2
1  2  2
2  2  2
3  2  2
Run Code Online (Sandbox Code Playgroud)

但我想要的是:

   A  B  C  D
0  1  1  2  2
1  1  1  2  2
2  1  1  2  2
3  1  1  2  2
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 6

您可以将结果分配给df0

>>> df0.iloc[:,2:] = df0.iloc[:,2:].mul(2)
>>> df0

   A  B  C  D
0  1  1  2  2
1  1  1  2  2
2  1  1  2  2
3  1  1  2  2
Run Code Online (Sandbox Code Playgroud)

如果您想要副本,请在分配之前制作:

df1 = df0.copy()
df1.iloc[:,2:] = df1.iloc[:,2:].mul(2)
Run Code Online (Sandbox Code Playgroud)