IE가 어른이 되기까지

[Python] 판다스 (Pandas) 의 DataFrame 연산하기 본문

DATA SCIENCE/Python

[Python] 판다스 (Pandas) 의 DataFrame 연산하기

기모랑의 초코 2023. 1. 4. 14:20

 

 

 

 

 

이번엔 DataFrame 연산과 Groupby에 대해

알아보도록 하겠습니다.

 

 

 

 

DataFrame 연산

 

grades_array = np.array([[8,8,9],[10,9,9],[4, 8, 2], [9, 10, 10]])
grades = pd.DataFrame(grades_array, columns=["sep", "oct", "nov"], index=["alice","bob","charles","darwin"])
grades

 

이를 위해 'grades'라는 DataFrame을

생성해 보았습니다.

 

 

 

1. Numpy 함수 적용

 

import numpy as np
np.sqrt(grades)

 

DataFrame에 numpy 함수를 적용하면

모든 값에 'sqrt (제곱근)'이라는 함수가 적용됩니다.

 

 

 

 

 

2. 산술연산 (*, /, ** 등) 과 조건연산 (>, ==, 등) 적용

 

grades >= 5

곱하기, 나누기, 제곱, 덧셈, 뺄셈과 같은 산술연산과

조건연산도 마찬가지로 모든 값에 적용됩니다.

 

 

 

 

 

3. 집계 연산 (mean, max, min, sum, all, any 등)

 

 

집계연산은 각 Numpy와 산술연산, 조건연산과 달리

각 열에 적용되며 Series 객체가 반환됩니다.

 

grades.mean()

grades.values.mean()

각 열에 대한 평균을 구하고 싶다면 .mean( )

전체 값에 대한 평균을 구하고 싶다면 .values.mean( )을 적용하면 됩니다.

 

 

 

(grades > 5).all()

(grades > 5).all(axis = 1)

all을 통해 행이나 열의 True / False 값을 반환할 수 있습니다.

 

.all( ) 을 통해 모든 학생의 점수가 5 초과인 월을 찾을 수 있었고.

여기에 axis = 1을 부여하면 점수가 매달 점수가 5 초과였던 학생을 찾을 수 있습니다.

 

 

 

(grades == 10).any(axis = 1)

 

any는 하나라도 참이면 True를 반환합니다.

이를 통해 한 번이라도 10점을 받았던 학생을 찾을 수 있습니다.

 

 

 

 

4. 응용하기

 

grades - grades.mean()

 

이를 통해 각 값에 해당 열의 평균을 뺄 수 있습니다.

 

 

Comments