Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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 将多列有条件地乘以一列(在Excel中很容易)_Python_Pandas_Dataframe - Fatal编程技术网

Python 将多列有条件地乘以一列(在Excel中很容易)

Python 将多列有条件地乘以一列(在Excel中很容易),python,pandas,dataframe,Python,Pandas,Dataframe,我有这样一个数据帧: a b c d m1 m2 3 2 2 2 5 4 1 4 1 1 5 4 3 2 2 3 5 4 我想用a和b乘以m1,用c和d乘以m2: a b c d m1 m2 15 10 8 8 5 4 5 20 4 4 5 4 15 10 8 12 5 4 同样保留了原始的dataframe结构,

我有这样一个数据帧:

a   b   c   d   m1   m2 
3   2   2   2   5    4 
1   4   1   1   5    4   
3   2   2   3   5    4
我想用a和b乘以m1,用c和d乘以m2:

a   b   c   d   m1   m2 
15  10  8   8   5    4 
5   20  4   4   5    4   
15  10  8   12  5    4
同样保留了原始的dataframe结构,这在Excel中相当简单,但事实证明很复杂,因为如果我尝试第一次乘法(m1),那么DF会删除未使用的列

干杯

与列名称列表定义的列子集一起使用:

df[['a', 'b']] = df[['a', 'b']].mul(df['m1'], axis=0)
df[['c', 'd']] = df[['c', 'd']].mul(df['m2'], axis=0)

print (df)
    a   b  c   d  m1  m2
0  15  10  8   8   5   4
1   5  20  4   4   5   4
2  15  10  8  12   5   4
与列名称列表定义的列子集一起使用:

df[['a', 'b']] = df[['a', 'b']].mul(df['m1'], axis=0)
df[['c', 'd']] = df[['c', 'd']].mul(df['m2'], axis=0)

print (df)
    a   b  c   d  m1  m2
0  15  10  8   8   5   4
1   5  20  4   4   5   4
2  15  10  8  12   5   4
这里有一种使用

这里有一种使用