데이터 프레임에서 수학적 연산을 수행하는 방법
판다스에서의 수학적 연산
데이터 분석을 할 때, 다양한 수학적 연산이 필요할 때가 많습니다. 판다스는 기본적으로 이러한 수학 연산을 직접 제공하지 않지만, 파이썬의 강력한 수학 라이브러리인 넘파이(NumPy)를 활용하면 이러한 문제를 쉽게 해결할 수 있습니다.
특히, 판다스는 넘파이 기반으로 제작된 라이브러리이기 때문에, 넘파이의 다양한 수학 함수들을 판다스 객체에 쉽게 적용할 수 있으며, 두 라이브러리 간에 높은 호환성을 갖고 있습니다.
넘파이의 수학 함수
넘파이(NumPy) 라이브러리는 다음과 같은 다양한 수학 함수를 지원합니다.
함수 | 설명 |
np.log | 자연로그(밑이 e) |
np.log2 | 밑이 2인 로그 |
np.log10 | 밑이 10인 로그 |
np.sin | 삼각함수 sin |
np.cos | 삼각함수 cos |
np.tan | 삼각함수 tan |
np.arcsin | 삼각함수 sin의 역함수 arcsin |
np.arccos | 삼각함수 cos의 역함수 arccos |
np.arctan | 삼각함수 tan의 역함수 arctan |
np.exp | e의 지수 함수 |
np.square | 제곱 |
np.sqrt | 제곱근 |
참고할 점은 삼각함수는 라디안 단위로 사용된다는 것입니다. 따라서 각도를 사용해야 하는 경우, 라디안으로 변환하여 함수에 적용해야 합니다. 또한 다양한 밑을 기반으로 로그 함수를 사용하고 싶다면 넘파이가 지원하는 로그 함수를 활용해 밑변환 공식으로 수행해야 합니다.
로그의 밑변환 공식)
예시는 밑이 10인 상용로그를 사용하였으나, 자연로그를 비롯한 다른 로그 함수로도 밑변환을 수행할 수 있습니다.
적용 예시
이제 실제 예시를 들어 판다스 데이터 프레임에 수학적 연산을 적용해 보겠습니다. 아래의 예시 데이터 프레임을 사용하여 제곱근을 구해보겠습니다. 넘파이 함수를 사용할 것이기에 import numpy as np도 잊지 말아야 합니다.
import pandas as pd
import numpy as np
pd.options.display.float_format = '{:.3f}'.format # 소수점 셋째 자리 출력
# 예시 데이터 프레임 생성
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
df에서 제곱근을 구하기 위해서는 넘파이 라이브러리를 활용해야 합니다. 넘파이 함수는 반드시 함수 형태로 적용되며, 제곱근을 구하는 함수는 np.sqrt입니다.
# df의 제곱근을 구하는 코드
out = np.sqrt(df)
각 셀의 값에 대해 제곱근이 계산된 값을 반환합니다.
결론
판다스는 직접적인 수학 함수를 제공하지 않지만, 넘파이의 함수를 활용하면 복잡한 수학적 연산도 판다스 객체에 적용할 수 있습니다.
교보문고 구매 페이지, 알라딘 구매 페이지, yes24 구매 페이지
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 그룹별로 오름차순과 내림차순을 다르게 설정해 순위 매기기 (3) | 2024.10.24 |
---|---|
[pandas] 집계 함수 (0) | 2024.10.21 |
[pandas] 기존 열을 수정하면서 새로운 열도 추가하는 방법 (0) | 2024.05.22 |
[pandas] 기존 데이터 프레임의 상위 2행을 멀티 인덱스로 설정하기 (0) | 2024.05.22 |
[pandas] 그룹의 순서를 유지하고 그룹 내에서 정렬하기 (0) | 2024.05.13 |