[파이썬] pandas에서 eval() 및 expression 평가

Pandas는 데이터 조작을 위한 강력한 도구로서 사용되며, 대규모 데이터셋에 대한 효율적인 연산을 수행할 수 있습니다. 하지만, 큰 크기의 데이터프레임을 다룰 때, 사용할 수 있는 메모리에 제한이 있을 수 있습니다. 이러한 경우에 eval() 함수와 expression 평가를 사용하여 연산 속도를 향상시킬 수 있습니다.

eval() 함수란?

eval() 함수는 문자열로 표현된 표현식(예: 수학식, 논리식 등)을 평가하여 결과를 반환하는 함수입니다. 이 함수를 사용하면 코드의 길이를 줄이고 연산 속도를 향상시킬 수 있습니다.

import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 예제 1: eval()을 사용하여 새로운 열 계산
df.eval('C = A + B', inplace=True)
print(df)

위의 코드에서는 eval() 함수를 사용하여 ‘A’ 열과 ‘B’ 열의 합을 계산하여 ‘C’ 열로 추가합니다. 결과적으로 다음과 같은 출력이 됩니다:

   A  B  C
0  1  4  5
1  2  5  7
2  3  6  9

Expression 평가

Pandas에서 expression 평가를 사용하면 eval() 함수와 비슷한 방법으로 데이터프레임을 조작할 수 있습니다. 그러나, eval() 함수와 달리 새로운 열을 생성하는 것이 아니라 계산된 결과를 반환합니다.

import pandas as pd

# Sample DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 예제 2: expression 평가를 사용하여 계산 결과 반환
result = df.eval('A + B')
print(result)

위의 코드에서는 eval() 함수 대신에 df.eval('A + B')를 사용하여 ‘A’ 열과 ‘B’ 열의 합을 계산합니다. 결과적으로 다음과 같은 출력이 됩니다:

0    5
1    7
2    9
dtype: int64

Conclusion

Pandas에서 eval() 함수와 expression 평가를 사용하면 데이터프레임의 연산을 효율적으로 수행할 수 있습니다. 특히 큰 크기의 데이터셋에서 메모리 사용을 최적화하고 연산 속도를 향상시킬 수 있습니다. 이러한 기능을 잘 활용하여 데이터 조작 작업을 더 빠르고 효율적으로 수행할 수 있습니다.