DataFrame.multiply() / Series.multiply()
Метод multiply() (синоним — mul()) выполняет поэлементное умножение с гибким управлением: поддерживает скаляр, Series, DataFrame, выравнивание по оси и заполнение пропусков. Аналог оператора *, но с параметрами.
Сигнатура
DataFrame.multiply(other, axis='columns', level=None, fill_value=None)
Series.multiply(other, level=None, fill_value=None, axis=0)
Параметры
other— скаляр,Series,DataFrameили массив.axis—'columns'(0) или'index'(1) — по какой оси выравнивать при операцииDataFrame * Series.level— уровеньMultiIndexдля выравнивания.fill_value— чем заменить отсутствующее значение до операции (вместо обычногоNaN-распространения).
Возвращаемое значение
Объект того же типа с результатом умножения.
Примеры
Пример 1. Умножение на скаляр
Перевод вольт в милливольты:
import pandas as pd
volts = pd.Series([3.3, 5.0, 1.8])
print(volts.multiply(1000))
0 3300.0
1 5000.0
2 1800.0
dtype: float64
Пример 2. Умножение DataFrame на Series по столбцам
Калибровочные коэффициенты для каждого датчика:
import pandas as pd
df = pd.DataFrame({"s_a": [100, 200, 300], "s_b": [50, 60, 70]})
k = pd.Series({"s_a": 1.1, "s_b": 0.95})
print(df.multiply(k, axis="columns"))
s_a s_b
0 110.0 47.50
1 220.0 57.00
2 330.0 66.50
Пример 3. Умножение по строкам (axis=“index“)
import pandas as pd
df = pd.DataFrame({"a": [1, 2, 3], "b": [10, 20, 30]})
weights = pd.Series([1, 0.5, 2])
print(df.multiply(weights, axis="index"))
a b
0 1.0 10.0
1 1.0 10.0
2 6.0 60.0
Пример 4. fill_value для несовпадающих индексов
import pandas as pd
a = pd.Series([2, 4, 6], index=["x", "y", "z"])
b = pd.Series([10, 20], index=["x", "y"])
print(a.multiply(b, fill_value=1))
x 20.0
y 80.0
z 6.0
dtype: float64
Пример 5. multiply vs оператор *
import pandas as pd
s = pd.Series([1, 2, 3])
print((s * 10).tolist())
print(s.multiply(10).tolist())
[10, 20, 30]
[10, 20, 30]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.