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_Stock과 Closing_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