DataFrame.div() / Series.div()
Метод div() выполняет поэлементное деление (self / other). В отличие от оператора /, позволяет задать fill_value для отсутствующих значений и явно указать ось.
Сигнатура
DataFrame.div(other, axis="columns", level=None, fill_value=None)
Series.div(other, level=None, fill_value=None, axis=0)
Параметры
other— скаляр,Series,DataFrame, список или массив.axis—"index"(0) или"columns"(1), только для DataFrame.fill_value— значение для заменыNaNперед операцией.level— уровень MultiIndex.
Возвращаемое значение
Объект того же типа с результатом деления.
Примеры
Пример 1. Деление Series на скаляр
import pandas as pd
s = pd.Series([10, 20, 30])
print(s.div(10))
0 1.0
1 2.0
2 3.0
dtype: float64
Пример 2. Перевод миллиампер в амперы
Токи с шунта Arduino:
import pandas as pd
ma = pd.Series([250, 500, 1000])
print(ma.div(1000))
0 0.25
1 0.50
2 1.00
dtype: float64
Пример 3. Деление DataFrame на Series по строкам
import pandas as pd
df = pd.DataFrame({"a": [10, 20], "b": [40, 80]})
norm = pd.Series([10, 20], index=["a", "b"])
print(df.div(norm, axis="columns"))
a b
0 1.0 2.0
1 2.0 4.0
Пример 4. С fill_value
import pandas as pd
import numpy as np
s1 = pd.Series([10, np.nan, 30])
s2 = pd.Series([2, 5, 6])
print(s1.div(s2, fill_value=20))
0 5.0
1 4.0
2 5.0
dtype: float64
Пример 5. Поэлементное деление двух DataFrame
import pandas as pd
a = pd.DataFrame({"x": [10, 20], "y": [30, 40]})
b = pd.DataFrame({"x": [2, 4], "y": [3, 5]})
print(a.div(b))
x y
0 5.0 10.0
1 5.0 8.0
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.