DataFrame.sum() / Series.sum()
Метод sum() вычисляет сумму значений по выбранной оси. Для Series возвращает одно число, для DataFrame — Series с суммами по столбцам (или строкам). Не учитывает NaN по умолчанию.
Сигнатура
DataFrame.sum(axis=0, skipna=True, numeric_only=False, min_count=0)
Series.sum(axis=None, skipna=True, numeric_only=False, min_count=0)
Параметры
axis—0(по столбцам, результат — сумма по строкам) или1(по строкам, результат — сумма по столбцам); по умолчанию0.skipna— игнорировать лиNaN(по умолчаниюTrue).numeric_only— учитывать только числовые столбцы.min_count— минимальное число валидных значений, иначе результат —NaN.
Возвращаемое значение
Скаляр (для Series) или Series (для DataFrame).
Примеры
Пример 1. Сумма по Series
import pandas as pd
readings = pd.Series([23, 24, 22, 25])
print(readings.sum())
94
Пример 2. Сумма по столбцам DataFrame
import pandas as pd
df = pd.DataFrame({
"sensor_A": [10, 20, 30],
"sensor_B": [5, 15, 25],
})
print(df.sum())
sensor_A 60
sensor_B 45
dtype: int64
Пример 3. Сумма по строкам
import pandas as pd
df = pd.DataFrame({
"morning": [100, 120, 90],
"evening": [80, 110, 70],
})
df["total"] = df.sum(axis=1)
print(df)
morning evening total
0 100 80 180
1 120 110 230
2 90 70 160
Пример 4. Игнорирование NaN
import pandas as pd
import numpy as np
s = pd.Series([5, np.nan, 10, np.nan, 15])
print(s.sum())
print(s.sum(skipna=False))
30.0
nan
Пример 5. Суммарный заряд аккумулятора за неделю
import pandas as pd
energy_mah = pd.Series([1200, 1300, 1100, 1450, 1250, 1380, 1420])
print(f"Итого: {energy_mah.sum()} мА·ч")
Итого: 9100 мА·ч
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.