-
Python Pandas (1. Pandas에서 데이터 연산하기)Python/Python 2020. 2. 4. 15:51반응형
NumPy 의 기본 중하나는 기본 산술 연산 과 복잡한 연산
모두에서 연산을 빠르게 수행 할 수 있다는 점이다 . Pandas는 Numpy로부터 이러한 기능들을 대부분
상속 받았다 .
# Pandas 는 몇가지 특성을 가지고 있다 . # 부정함수와 삼각함수 같은 단항 연산의 경우에는 유니버셜 함수가 결과물에 인덱스와 열 레이블을 보존하고 # 이항 연산의 경우 자동으로 인덱스를 보존한다 import pandas as pd import numpy as np
rng = np.random.RandomState(42) ser = pd.Series(rng.randint(0,10,4)) ser
df = pd.DataFrame(rng.randint(0,10,(3,4)) , columns=['A','B','C','D']) df
np.exp(ser) #exp 지수연산 .
np.sin(df * np.pi / 4) #좀더 복잡한 연산
#유니버설 함수 : 인덱스 정렬 #두 개의 Series 또는 DataFrame 객체에 이항 연산을 적용하는 경우 #Pandas는 연산 수행과정에서 인덱스를 정렬한다 .
area = pd.Series({'Alaska' : 172337 , 'Texas' : 695662 , 'California' : 423967} , name='area' ) population = pd.Series({'California' : 38332521 , 'Texas' : 26448193, 'New York': 19651127 }, name='population')
#결과 배열은 두 입력 배열의 인덱스의 합집합을 담고 있다. population/area
area.index | population.index
#둘 중 하나라도 값이 없는 항목은 NaN 으로 처리된다 . A = pd.Series([2,4,6] , index=[0,1,2]) B = pd.Series([1,3,5] , index=[1,2,3]) A+B
#NaN 값 사용을 원치 않을경우 A나 B에서 누락된 요소의 채우기 값을 선택해 명시적으로 지정가능 A.add(B,fill_value=0)
# DataFrame에서 인덱스 정렬 A = pd.DataFrame(rng.randint(0,20,(2,2)) , columns=list('AB')) A
B = pd.DataFrame(rng.randint(0,10,(3,3)) , columns=list('BAC')) B
#두 객체의 순서와 상관없이 인덱스가 올바르게 정렬되고 결과 인덱스가 정렬된다. A + B
#누락 된 값은 Series와 마찬가지로 fill_value를 전달할 수 있다. fill = A.stack().mean() A.add(B, fill_value=fill)
# DataFrame 과 Series 간의 연산할 때 인덱스와 열의 순서는 비슷하게 유지된다. # DataFrame 과 Serise 사이의 연산은 2차워s Numpy 배열과 1차원Numpy 배열 사이의 연산과 비슷하다. A = rng.randint(10 , size = (3,4)) A
A - A[0]
#Pandas 에서도 연산 규칙이 기본적으로 행방향으로 적용된다 . df = pd.DataFrame (A , columns=list('QRST')) df - df.iloc[0]
#열 방향으로 연산할려면 df.subtract(df['R'] ,axis=0 )
halfow = df.iloc[0, ::2] halfow
df - halfow
반응형'Python > Python' 카테고리의 다른 글
Python 개발일지 (1. 마우스 좌표 값 csv로 저장하기) (0) 2020.04.09 Python Pandas(2. 누락된 데이터 처리하기 .) (0) 2020.02.06 Python ( list 중복 요소 제거 ) (0) 2020.01.31 Python (알고리즘 백준 10871) (0) 2020.01.30 Python NumPy (8. NumPy 최대 최소 값 찾기) (0) 2020.01.22