Pandas 열의 합계를 얻는 방법

  1. Pandas DataFrame 열의 합계를 얻는 방법
  2. groupby 와 ‘누적’합
  3. 다른 열의 조건에 따라 열의 합계를 얻는 방법

우리는 pandas dataframe columnsum 을 얻는 방법과 groupby 로 누적 합을 계산하는 방법과 다른 열 값의 조건에 따라 열의 dataframe 합을 얻는 방법을 소개합니다.

Pandas DataFrame 열의 합계를 얻는 방법

먼저,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

groupby 와 ‘누적’합

groupby 방법을 사용하여 누적 합계를 얻을 수 있습니다. Date,FruitSale 열이있는 다음 데이터 프레임을 고려하십시오.

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
        

다른 열의 조건에 따라 열의 합계를 얻는 방법

이 메소드는 주어진 조건이 true인 경우 합계를 얻고 조건이 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)

위의 코드에서 우리는[ 'x']가 1보다 크면 첫 번째 열[ 'x', 'y']의 합인 dataframe 에 새 열 sum 을 추가합니다. 그렇지 않으면 sum0

코드를 실행하면 다음과 같은 결과가 출력됩니다 (값이 변경 될 수 있음).

          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