[파이썬] 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 평가를 사용하면 데이터프레임의 연산을 효율적으로 수행할 수 있습니다. 특히 큰 크기의 데이터셋에서 메모리 사용을 최적화하고 연산 속도를 향상시킬 수 있습니다. 이러한 기능을 잘 활용하여 데이터 조작 작업을 더 빠르고 효율적으로 수행할 수 있습니다.