Python 将dataframe的特定列乘以常量标量值
如何仅将数据帧的特定列乘以常量值Python 将dataframe的特定列乘以常量标量值,python,pandas,dataframe,multiplication,Python,Pandas,Dataframe,Multiplication,如何仅将数据帧的特定列乘以常量值 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 我明白了: C D 0 2 2 1 2 2
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
我明白了:
C D
0 2 2
1 2 2
2 2 2
3 2 2
但我想要的是:
A B C D
0 1 1 2 2
1 1 1 2 2
2 1 1 2 2
3 1 1 2 2
您可以将结果分配给
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
如果您需要副本,请在分配前制作:
df1 = df0.copy()
df1.iloc[:,2:] = df1.iloc[:,2:].mul(2)
如果需要在标量上乘法,则不需要调用
mul
方法,可以使用常用的*
运算符:
In [24]: df0.iloc[:,2:] * 2
Out[24]:
C D
0 2 2
1 2 2
2 2 2
3 2 2
对于您的问题,您可以使用pd.concat
和第一列以及要乘以的列:
In [25]: pd.concat([df0.iloc[:,:2], df0.iloc[:,2:] * 2], axis=1)
Out[25]:
A B C D
0 1 1 2 2
1 1 1 2 2
2 1 1 2 2
3 1 1 2 2