Как получить сумму колонки Pandas

Asad Riaz 30 Январь 2023 18 Апрель 2020
  1. Метод получения суммы столбца
  2. “Совокупная сумма с групповой суммой”
  3. Метод получения суммы столбцов на основе Условия других Столбцов Значения
Как получить сумму колонки Pandas

Мы познакомимся с тем, как получить сумму Pandas DataFrame столбца, а также с такими методами, как вычисление кумулятивной суммы с groupby, и суммы столбцов фрейма данных на основе условных значений других столбцов.

Метод получения суммы столбца

Сначала мы создаем случайный массив, используя библиотеку NumPy, а затем получаем сумму каждого столбца, используя функцию sum().

import numpy as np
import pandas as pd

df = pd.DataFrame(
    np.random.randint(0,10,size=(10, 4)),
    columns=list('1234'))
print(df)
Total = df['1'].sum()
print ("Column 1 sum:",Total)
Total = df['2'].sum()
print ("Column 2 sum:",Total)
Total = df['3'].sum()
print ("Column 3 sum:",Total)
Total = df['4'].sum()
print ("Column 4 sum:",Total) 

Если вы запустите этот код, то получите следующий вывод (значение может быть разным в вашем случае),

   1  2  3  4
0  2  2  3  8
1  9  4  3  1
2  8  5  6  0
3  9  5  7  4
4  2  7  3  7
5  9  4  1  3
6  6  7  7  3
7  0  4  2  8
8  0  6  6  4
9  5  8  7  2
Column 1 sum: 50
Column 2 sum: 52
Column 3 sum: 45
Column 4 sum: 40

“Совокупная сумма с групповой суммой”

Мы можем получить кумулятивную сумму, используя метод групповых. Рассмотрим следующий Датафрейм со столбцами Date, Fruit и Sale:

import pandas as pd

df = pd.DataFrame(
    {
        'Date': 
             ['08/09/2018', 
              '10/09/2018', 
              '08/09/2018', 
              '10/09/2018'],
        'Fruit': 
             ['Apple', 
              'Apple', 
              'Banana', 
              'Banana'],
        'Sale':
             [34,
              12,
              22,
              27]
    })

Если мы хотим вычислить кумулятивную сумму Продажа за фрукт и для каждой даты мы можем это сделать:

import pandas as pd

df = pd.DataFrame(
    {
        'Date': 
             ['08/09/2018', 
              '10/09/2018', 
              '08/09/2018', 
              '10/09/2018'],
        'Fruit': 
             ['Apple', 
              'Apple', 
              'Banana', 
              'Banana'],
        'Sale':
             [34,
              12,
              22,
              27]
    })

print(df.groupby(by=['Fruit','Date']).sum().groupby(level=[0]).cumsum())

После запуска вышеуказанных кодов мы получим следующий вывод, который показывает кумулятивную сумму фруктов за каждую дату:

Fruit  Date         Sale
Apple  08/09/2018    34
       10/09/2018    46
Banana 08/09/2018    22
       10/09/2018    49
        

Метод получения суммы столбцов на основе Условия других Столбцов Значения

Этот метод обеспечивает функциональность получения суммы, если заданное условие истинно и замены суммы на заданное значение, если условие False. Рассмотрим следующий код

import numpy as np
import pandas as pd

df = pd.DataFrame(
    np.random.randn(5,3), 
    columns=list('xyz'))

df['sum'] = df.loc[df['x'] > 0,['x','y']].sum(axis=1)

df['sum'].fillna(0, inplace=True)
print(df)

В приведенном выше коде мы добавили новый столбец sum в DataFrame, который является суммой первых столбцов ['x', 'y'] если ['x'] больше чем 1, то мы заменяем sum на 0.

После запуска кода мы получим следующий вывод (значения могут быть изменены в вашем случае).

          x         y         z       sum
0 -1.067619  1.053494  0.179490  0.000000
1 -0.349935  0.531465 -1.350914  0.000000
2 -1.650904  1.534314  1.773287  0.000000
3  2.486195  0.800890 -0.132991  3.287085
4  1.581747 -0.667217 -0.182038  0.914530

Сопутствующая статья - Pandas DataFrame Column