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

Python Pandas eval() 함수로 행 합계 계산하기

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_StockClosing_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() 함수를 활용하면 열 간 연산을 문자열 표현식 한 줄로 처리할 수 있어 가독성이 뛰어나고, 대용량 데이터에서는 내부 최적화 덕분에 일반적인 방식보다 빠른 성능을 기대할 수 있습니다. 덧셈뿐만 아니라 뺄셈, 곱셈, 나눗셈 등 다양한 산술 연산에도 동일하게 적용할 수 있습니다.