Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Pandas DataFrame에서 loc()로 특정 행만 합산하는 방법

Pandas DataFrame에서 원하는 특정 행만 골라 합산하려면 loc() 메서드를 사용하는 것이 가장 간단합니다. : 연산자를 이용해 시작 행 인덱스와 끝 행 인덱스를 지정할 수 있고, loc() 안에서 포함할 열(column)까지 함께 선택할 수 있습니다. 합산 결과는 새로운 열에 저장해 한눈에 확인할 수 있습니다.

1. 예제용 DataFrame 생성

먼저 제품 정보와 함께 기초 재고(Opening_Stock), 기말 재고(Closing_Stock) 데이터를 담은 DataFrame을 만들어 보겠습니다.

dataFrame = pd.DataFrame({"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"], "Opening_Stock": [300, 700, 1200, 1500], "Closing_Stock": [200, 500, 1000, 900]})

2. loc()로 특정 행 합산하기

이번 예제에서는 첫 번째와 두 번째 행(인덱스 0~1)의 값만 합산해 보겠습니다. loc()에 행 범위인 0 : 1을 지정하고, 합산 대상 열 이름인 Opening_StockClosing_Stock을 함께 명시합니다. 계산 결과는 새로운 열인 "Sum_Result"에 저장됩니다.

dataFrame['Sum_Result'] = dataFrame.loc[0 : 1,["Opening_Stock" , "Closing_Stock"]].sum(axis = 1)

전체 코드 예제

다음은 위 내용을 모두 담은 완성된 코드입니다.

import pandas as pd

dataFrame = pd.DataFrame({"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"], "Opening_Stock": [300, 700, 1200, 1500], "Closing_Stock": [200, 500, 1000, 900]})

print("DataFrame...\n", dataFrame)

# 특정 행만 합산
# loc()에 합산할 열 이름(Opening_Stock, Closing_Stock)도 함께 지정
# 결과는 새로운 열 Sum_Result에 저장

dataFrame['Sum_Result'] = dataFrame.loc[0 : 1,["Opening_Stock" , "Closing_Stock"]].sum(axis = 1)
print("\nSumming some rows...\n", dataFrame)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다. 인덱스 0과 1(SmartTV, ChromeCast)의 행만 합산되어 Sum_Result 열에 값이 채워지고, 나머지 행에는 NaN이 표시되는 것을 확인할 수 있습니다.

DataFrame...
    Closing_Stock   Opening_Stock   Product
0           200             300       SmartTV
1           500             700       ChromeCast
2          1000            1200       Speaker
3           900            1500       Earphone

Summing some rows...
    Closing_Stock   Opening_Stock   Product   Sum_Result
0           200             300       SmartTV        500.0
1           500             700       ChromeCast    1200.0
2          1000            1200       Speaker         NaN
3           900            1500       Earphone        NaN