Метод div
Метод div применяется к DataFrame
и выполняет поэлементное деление значений таблицы
на указанный делитель. В качестве делителя может
выступать число, столбец, другой DataFrame
или Series. По умолчанию метод работает
по столбцам. Основные параметры:
other - значение, на которое делят,
axis - ось для выравнивания,
level - уровень для MultiIndex,
fill_value - значение для замены пропусков.
Синтаксис
df.div(other, axis='columns', level=None, fill_value=None)
Пример
Давайте разделим все значения таблицы на число 2:
import pandas as pd
df = pd.DataFrame({
'a': [10, 20, 30, 40, 50],
'b': [2, 4, 6, 8, 10]
})
res = df.div(2)
print(res)
Результат выполнения кода:
a b
0 5.0 1.0
1 10.0 2.0
2 15.0 3.0
3 20.0 4.0
4 25.0 5.0
Пример
Давайте выполним деление на значения из другого DataFrame:
import pandas as pd
df = pd.DataFrame({
'a': [10, 20, 30, 40, 50],
'b': [2, 4, 6, 8, 10]
})
df2 = pd.DataFrame({
'a': [2, 2, 2, 2, 2],
'b': [2, 2, 2, 2, 2]
})
res = df.div(df2)
print(res)
Результат выполнения кода:
a b
0 5.0 1.0
1 10.0 2.0
2 15.0 3.0
3 20.0 4.0
4 25.0 5.0
Пример
Давайте разделим значения на столбец 'a' из того же DataFrame.
Для этого используем параметр axis со значением 0:
import pandas as pd
df = pd.DataFrame({
'a': [2, 4, 6, 8, 10],
'b': [10, 20, 30, 40, 50],
'c': [100, 200, 300, 400, 500]
})
res = df.div(df['a'], axis=0)
print(res)
Результат выполнения кода:
a b c
0 1.0 5.0 50.0
1 1.0 5.0 50.0
2 1.0 5.0 50.0
3 1.0 5.0 50.0
4 1.0 5.0 50.0
Пример
Давайте используем параметр fill_value для замены пропусков.
При делении на ноль получается inf, а при делении пропуска на число - NaN:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [10, np.nan, 30, 40, 50],
'b': [0, 2, 0, 4, np.nan]
})
res = df.div(2, fill_value=1)
print(res)
Результат выполнения кода:
a b
0 5.0 0.0
1 0.5 1.0
2 15.0 0.0
3 20.0 2.0
4 25.0 0.5