Pandas의 eval() 함수는 지정한 열들을 기준으로 행 단위 합계를 손쉽게 계산할 수 있는 강력한 기능입니다. 복잡한 연산 코드를 작성하지 않고도 문자열 표현식만으로 새로운 결과 열을 만들 수 있어 코드가 간결해집니다.
1. DataFrame 생성하기
먼저 제품 재고 정보를 담은 DataFrame을 생성해 보겠습니다.
dataFrame = pd.DataFrame({
"Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],
"Opening_Stock": [300, 700, 1200, 1500],
"Closing_Stock": [200, 500, 1000, 900]
})2. eval() 함수로 행 합계 구하기
eval() 함수 안에서 합계 공식을 문자열 표현식으로 전달하면, 그 결과가 자동으로 새로운 열에 저장됩니다. 아래 예제에서는 Opening_Stock과 Closing_Stock 두 열의 값을 더하여 Result_Sum이라는 결과 열을 생성합니다.
dataFrame = dataFrame.eval('Result_Sum = Opening_Stock + Closing_Stock')전체 예제 코드
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)
# eval() 함수로 행 합계 계산
# 결과 열 이름과 합계 공식을 함께 지정
# Opening_Stock + Closing_Stock 값이 Result_Sum 열에 저장됨
dataFrame = dataFrame.eval('Result_Sum = Opening_Stock + Closing_Stock')
print("\n행 합계 계산 결과...\n", dataFrame)실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
DataFrame...
Product Opening_Stock Closing_Stock
0 SmartTV 300 200
1 ChromeCast 700 500
2 Speaker 1200 1000
3 Earphone 1500 900
행 합계 계산 결과...
Product Opening_Stock Closing_Stock Result_Sum
0 SmartTV 300 200 500
1 ChromeCast 700 500 1200
2 Speaker 1200 1000 2200
3 Earphone 1500 900 2400정리
eval() 함수를 활용하면 열 간 연산을 문자열 표현식 한 줄로 처리할 수 있어 가독성이 뛰어나고, 대용량 데이터에서는 내부 최적화 덕분에 일반적인 방식보다 빠른 성능을 기대할 수 있습니다. 덧셈뿐만 아니라 뺄셈, 곱셈, 나눗셈 등 다양한 산술 연산에도 동일하게 적용할 수 있습니다.