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.