Функция Pandas Series.sum()

Pandas 常用函数Часто используемые функции Pandas


Series.sum()Это функция в Pandas, используемая для вычисления суммы всех элементов в Series. Это одна из наиболее часто используемых статистических функций в анализе данных, позволяющая быстро получить сумму числовых данных.

Будь то расчёт общего объёма продаж, общей прибыли или общего количества,sum()это может помочь вам быстро с этим справиться. Это особенно подходит для обработки финансовых данных, статистических отчетов, анализа данных о продажах и подобных сценариев.


Базовый синтаксис и параметры

sum()Это метод объекта Series, вызываемый напрямую через оператор точки.

Формат синтаксиса

Series.sum(axis=None, skipna=True, level=None, numeric_only=None, min_count=0, **kwargs)

Описание параметра

Параметр Type Описание Значение по умолчанию
axis int Указывает ось. Series имеет только одну строку данных; этот параметр в основном для совместимости с DataFrame. Отсутствует
skipna bool Если True, значения NaN пропускаются при вычислении; если False, то результат возвращает NaN при обнаружении NaN. True
level int или str Если Series имеет MultiIndex, укажите уровень для вычисления. Отсутствует
numeric_only bool Если True, вычисляются только числовые данные; в противном случае предпринимается попытка преобразовать в числовые значения. False
min_count int Минимальное количество допустимых значений, необходимых для вычисления. Если количество допустимых значений меньше этого числа, возвращается NaN. 0

Возвращаемое значение

  • Тип возвращаемого значения: числовой (int、floatилиnumpy.nan)
  • Описание: Возвращает сумму всех элементов в Series. Если все элементы NaN (и skipna=True), возвращает 0.

Примеры

Давайте с помощью серии примеров от простого к сложному тщательно освоимSeries.sum()его использование.

Пример 1: Базовое использование — вычисление суммы числового списка

Самое базовое использование — создать числовой Series и затем вызватьsum()для вычисления суммы.

Пример

import pandas as pd

# Создать Series, содержащий суммы продаж
# Имитировать ежедневные данные о продажах за неделю
sales_data = pd.Series([1200, 1500, 1800, 900, 2100, 1600, 1350])

# Вычислить общий объём продаж
total_sales = sales_data.sum()

print("Ежедневные продажи:")
print(sales_data)
print()
print(f"Общий объём продаж: {total_sales}")

Вывод:

每日销售额:
0    1200
1    1500
2    1800
3     900
4    2100
5    1600
6    1350
dtype: int64

总销售额:10450

Пояснение к коду:

  • Создан Series, содержащий данные о продажах за 7 дней, с целочисленным типом данных.
  • sum()Он просто перебирает все элементы и суммирует их, чтобы получить итоговое значение 10450.

Пример 2: Обработка данных, содержащих пропущенные значения

Пропущенные значения часто встречаются в реальных данных,skipnaи параметр определяет, как обрабатывать эти пропущенные значения.

Пример

import pandas as pd
import numpy as np

# Создать Series, содержащий пропущенные значения
# Смоделировать пропущенные данные о продажах для определённых дат
sales_with_nan = pd.Series([1200, 1500, np.nan, 1800, np.nan, 2100, 1600])

print("Данные о продажах с пропущенными значениями:")
print(sales_with_nan)
print()

# По умолчанию skipna=True, пропускать NaN и вычислять сумму
total_skipna = sales_with_nan.sum()
print(f"Сумма с skipna=True (по умолчанию): {total_skipna}")

# Установить skipna=False, вернуть NaN при обнаружении NaN
total_no_skipna = sales_with_nan.sum(skipna=False)
print(f"Сумма с skipna=False: {total_no_skipna}")

Вывод:

包含缺失值的销售数据:
0    1200.0
1    1500.0
2       NaN
3    1800.0
4       NaN
5    2100.0
6    1600.0
dtype: float64

skipna=True(默认)时的总和:8200.0
skipna=False 时的总和:nan

Пояснение к коду:

  • Когдаskipna=TrueКогда (значение по умолчанию),sum()он автоматически пропускает значения NaN и вычисляет сумму только допустимых значений.
  • Процесс вычисления: 1200 + 1500 + 1800 + 2100 + 1600 = 8200
  • Когдаskipna=FalseКогда skipna=False, пока существует NaN, результат возвращает NaN. Это полезно в сценариях, где нужно четко знать целостность данных.

Пример 3: Использование параметра min_count

min_countПараметр min_count позволяет задать минимальное количество допустимых значений, необходимое для вычисления. Это полезно, когда нужно обеспечить достаточность данных.

Пример

import pandas as pd
import numpy as np

# Создайте Series, в которой большинство значений пропущено
sparse_data = pd.Series([np.nan, np.nan, 100, np.nan, np.nan])

print("Данные, в которых большинство значений пропущено:")
print(sparse_data)
print()

# По умолчанию min_count=0: вычислять, пока имеется хотя бы 0 допустимых значений
result_default = sparse_data.sum()
print(f"Результат с min_count=0 (по умолчанию): {result_default}")

# Установите min_count=3, для вычисления требуется не менее 3 допустимых значений
result_min_count = sparse_data.sum(min_count=3)
print(f"Результат с min_count=3: {result_min_count}")

# Установите min_count=2, нужно только 2 допустимых значения
result_min_count_2 = sparse_data.sum(min_count=2)
print(f"Результат с min_count=2: {result_min_count_2}")

Вывод:

大部分缺失的数据:
0     NaN
1     NaN
2    100.0
3     NaN
4     NaN
dtype: float64

min_count=0(默认)时的结果:100.0
min_count=3 时的结果:nan
min_count=2 时的结果:100.0

Пояснение к коду:

  • В этом Series только 1 допустимое значение (100).
  • min_count=3Это означает, что для вычисления требуется как минимум 3 допустимых значения, но фактически имеется только 1, поэтому возвращается NaN.
  • min_count=2Это означает, что требуется как минимум 2 допустимых значения, но фактически имеется только 1 допустимое значение, что не удовлетворяет условию, поэтому возвращается NaN.
  • Этот параметр очень полезен в сценариях анализа с высокими требованиями к качеству данных, так как он помогает выявлять ситуации, когда допустимых данных недостаточно.

Пример 4: Применение в анализе реальных данных

Объединяя реальные бизнес-сценарии, продемонстрируйтеsum()его типичные применения.

Пример

import pandas as pd

# Создайте имитированный DataFrame с данными о продажах
sales_data = pd.DataFrame({
    'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
    'East China Region': [12000, 15000, 18000, 16000, 14000, 17000],
    'Северный Китай': [10000, 11000, 13000, 12500, 11500, 14000],
    'Южный Китай': [15000, 17000, 19000, 18000, 16000, 20000]
})

print("Данные о продажах по регионам за первое полугодие:")
print(sales_data)
print()

# Рассчитать суммарные продажи за полугодие для каждого региона
for region in ['Восточный Китай', 'Северный Китай', 'Южный Китай']:
    total = sales_data[region].sum()
    print(f"{region} общий объем продаж за полугодие: {total} yuan")

print()

# Рассчитать общий объем продаж по всем регионам
total_all = sales_data[['Восточный Китай', 'Северный Китай', 'Южный Китай']].sum().sum()
print(f"Общий объем продаж за полугодие по всем регионам: {total_all} yuan")

Вывод:

上半年各区域销售数据:
   月份   华东区   华北区   华南区
0  1月  12000  10000  15000
1  2月  15000  11000  17000
2  3月  18000  13000  19000
3  4月  16000  12500  18000
4  5月  14000  11500  16000
5  6月  17000  14000  20000

华东区半年总销售额:92000 元
华北区半年总销售额:72000 元
华南区半年总销售额:105000 元

所有区域半年总销售额:269000 元

Примечания

  • sum()По умолчанию значения NaN пропускаются, что в большинстве случаев является ожидаемым поведением.
  • Если вам нужно просуммировать Series, содержащий нечисловые данные, сначала следует очистить данные или использоватьnumeric_only=Trueпараметр numeric_only.
  • min_countПараметр min_count очень полезен при проверке данных и контроле качества, так как помогает выявлять ситуации, когда корректных данных недостаточно.
  • Для больших наборов данных,sum()sum() обычно показывает хорошую производительность, потому что внутри использует векторизованные операции NumPy.

Итог

Series.sum()Это одна из самых базовых и часто используемых статистических функций в Pandas. Её основные возможности включают:

  • Простая и удобная в использовании, вызывается напрямую через оператор точки.
  • Поддерживает обработку пропущенных значений черезskipnaпараметр skipna.
  • Вы можете использоватьmin_countпараметр min_count для установки минимального требования к корректным значениям.
  • Она использует оптимизированную реализацию NumPy на внутреннем уровне, что обеспечивает высокую вычислительную эффективность.

В реальном анализе данных,sum()её обычно используют вместе с другими функциями агрегации (такими какmean()、count()mean(), и т. д.) для проведения комплексного статистического анализа данных.

Pandas 常用函数Часто используемые функции Pandas

Другие расширения