Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将dataframe的特定列乘以常量标量值_Python_Pandas_Dataframe_Multiplication - Fatal编程技术网

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