DataFrame.mul(self, other, axis='columns', level=None, fill_value=None) [source]
DataFrame.multiply(self, other, axis='columns', level=None, fill_value=None) [source]
获取dataframe和其他元素的乘法(二进制操作符mul)。
等价于dataframe * other
,但是支持用fill_value
替换其中一个输入中丢失的数据。与反向版本,rmul
。
在灵活的包装器(add, sub, mul, div, mod, pow
)算术运算符:+,-,*,/,//,%,**
。
参数: | other : 何单个或多个元素数据结构,或类似列表的对象。 axis :{0 或 ‘index’, 1 或 ‘columns’} 是按索引(0或' index ') 还是按列(1或' columns ')进行比较。 对于Series输入,轴上匹配Series索引。 level : 跨级别广播,匹配传递的多索引级别上的索引值。
在计算之前,用这个值填充现有的缺失值(NaN) 和成功的DataFrame对齐所需的任何新元素。 如果两个对应的DataFrame位置中的数据都丢失了, 那么结果也将丢失。 |
返回值: | DataFrame 算术运算的结果。 |
Notes
不匹配的索引将合并在一起。
例子
1)DataFrame 与标量相乘
import pandas as pd df = pd.DataFrame({ 'A': [1, 2], 'B': [3, 4] }) result = df.mul(10) print(result)
2)两个 DataFrame 相乘
import pandas as pd df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'A': [10, 20], 'B': [30, 40]}) result = df1.mul(df2) print(result)
3)DataFrame 与 Series 相乘(按列广播)
import pandas as pd df = pd.DataFrame({ 'A': [1, 2, 3], 'B': [4, 5, 6] }) s = pd.Series([10, 100], index=['A', 'B']) result = df.mul(s, axis='columns') print(result)
4)使用 fill_value
处理缺失值
import pandas as pd import numpy as np df1 = pd.DataFrame({'A': [1, np.nan], 'B': [3, 4]}) df2 = pd.DataFrame({'A': [10, 20], 'B': [30, 40]}) result = df1.mul(df2, fill_value=1) print(result)