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.