반응형
반응형

안녕하세요. PSYda입니다.

이번 포스팅에서는 Pandas DataFrame의 산술 연산에 대해 알아보겠습니다.

소개할 내용은 아래와 같습니다.

  • DataFrame과 DataFrame의 연산 함수 소개
  • DataFrame과 Sereis의 연산 함수 소개

5.Pandas DataFrame 산술 연산

DataFrame 의 연산은 아래의 두 가지 케이스가 있습니다.

  • DataFrame vs DataFrame 연산
  • DataFrame vs Series 연산

5.1 DataFrame vs DataFrame 연산

DataFrame의 연산 규칙은 아래와 같습니다.

  • 같은 index 이면서 같은 column 명을 가진 두 value를 연산함
  • 같은 index 이면서 같은 column 명을 가진 두 value 중 하나라도 NaN이 있으면 NaN으로 채워진다.
  • index나 column 명이 다르면 NaN으로 채워진다.

연산하는 방법에는 두 가지 방법이 있습니다.

  • 연산자( +, -, *, / )를 이용한 연산
  • 함수( add, sub, mul, div )를 이용한 연산

기본 연산은 동일하지만 함수를 사용하면 fill_valueaxis 옵션을 사용할 수 있습니다.

Ex)df1.add(df2, fill_value = 0, axis = 0)

  • fill_value = 0 : NaN값을 0으로 간주하고 연산, 0이 아닌 값 입력 가능
  • axis = 0 : DataFrame와 Series간의 연산에서 방향을 지정(5.1.2 참고)

곱하기, 나누기, 빼기 등도 동일한 방법이므로, 대표로 더하기에 대해서만 실습해보겠습니다.

import pandas as pd
from pandas import Series, DataFrame
import numpy as np
df1 = DataFrame([[1,3,5],[7,9,11],[5,13,15]])
df1

0 1 2
0 1 3 5
1 7 9 11
2 5 13 15
df2 = DataFrame([[1,2,3],[4,np.nan,6],[7,8,9]], columns=[0,1,3], index=[0,1,3])
df2

0 1 3
0 1 2.0 3
1 4 NaN 6
3 7 8.0 9
df1 + df2

0 1 2 3
0 2.0 5.0 NaN NaN
1 11.0 NaN NaN NaN
2 NaN NaN NaN NaN
3 NaN NaN NaN NaN
df1.add(df2,fill_value=0)

0 1 2 3
0 2.0 5.0 5.0 3.0
1 11.0 9.0 11.0 6.0
2 5.0 13.0 15.0 NaN
3 7.0 8.0 NaN 9.0

5.2 DataFrame vs Series 연산

연산 함수(add, sub, mul, div) 의 axis 옵션을 통해 행, 열 방향으로 연산 가능

Ex) df1.add(df2, axis = 0)

axis = 0 : Index방향(행방향)으로 DataFrame과 Series 연산

  • DataFrame과 Series가 동일한 Index를 가지면 연산, 다르면거나 한쪽만 있으면 NaN

axis = 1 : Column방향으로 DataFrame과 Series 연산

  • DataFrame과 Series가 동일한 Column명을 가지면 연산, 다르면거나 한쪽만 있으면 NaN

연산을 위한 Sereis 생성

s1 = Series([1,2,3,4])
s1
0    1
1    2
2    3
3    4
dtype: int64
df1

0 1 2
0 1 3 5
1 7 9 11
2 5 13 15
df1.add(s1, axis = 0)

0 1 2
0 2.0 4.0 6.0
1 9.0 11.0 13.0
2 8.0 16.0 18.0
3 NaN NaN NaN
df1.add(s1, axis = 1)

0 1 2 3
0 2 5 8 NaN
1 8 11 14 NaN
2 6 15 18 NaN

위의 Jupyter notebook 내용은 여기 Github에서도 확인 할 수 있습니다,

다음 포스팅은 DataFrame의 통계에 대해 알아볼 예정입니다.

감사합니다.

반응형
반응형

안녕하세요. PSYda입니다.
오늘은 Pandas가 무엇인지 알아보겠습니다.

1. Pandas란?

Pandas의 공식 Github에서 설명하는 Pandas는 아래와 같습니다.

 

"관계형" 또는 "레이블이 된" 데이터로 쉽고 직관적으로 작업할 수 있도록 설계되었고 빠르고, 유연한 데이터 구조를 제공하는 Python 패키지

 

관계형, 레이블이 된 데이터라는 말은 엑셀의 데이터나, DBMS의 관계형 테이블 형태와 같은 표형태의 데이터로 이해 할 수 있습니다. 아무튼 데이터를 쉽게 다룰 수 있고, 분석을 용이하게 해주는 파이썬 라이브러리라고 이해 할 수 있습니다.

2. Pandas로 할 수 있는 것은?

구체적으로 Pandas로 할 수 있는 것들은 아래와 같습니다.

  • Python 자료구조와의 호환(List ,Tuple, Dict, NumpyArray 등)
  • 큰 데이터의 빠른 Indexing, Slicing, Sorting 하는 기능
  • 두 데이터 간의 Join(행,열 방향) 기능
  • 데이터의 피봇팅 및 그룹핑
  • 데이터의 통계 및 시각화 기능
  • 외부 데이터를 입력 받아 Pandas 자료구조로 저장 및 출력(CSV, 구분자가 있는 txt, 엑셀데이터, SQL database, XML 등)

3. Pandas 사용하기

Pandas는 파이썬 라이브러리이기 때문에 별도의 설치가 필요한데, Anaconda라는 패키지를 사용하면, Pandas가 기본으로 설치되어 있기 때문에 Anaconda를 이용하는 것을 권장합니다.

Anaconda는 수학, 과학, 데이터 분석 분야에서 사용하는 Python 패키지를 한 번에 설치 할 수 있게 해줍니다. 또한 Jupyter notebook과 같은 IDE 개발 도구도 함께 설치 할 수 있습니다.

Anaconda 공식 홈페이지에서 원클릭으로 쉽게 설치 할 수 있습니다.

4. 포스팅 목자

  1. Pandas의 자료구조-Series
  2. Pandas의 자료구조-DataFrame
  3. 여러 DataFrame 연결하기
  4. Pandas의 파일 입출력
  5. Pandas DataFrame 산술 연산
  6. Pandas DataFrame 통계
  7. Pandas DataFrmae의 sort,rank 함수
  8. Series와 DataFrame에 함수 적용하기
  9. DataFrame의 집계(그룹핑) 함수

다음의 포스팅부터 Jupyter notebook을 사용하여 직접 Pandas를 실습할 예정입니다.
Pandas에 대한 추가적인 정보가 필요할 경우 공식 문서를 참고해주세요.

반응형

+ Recent posts

반응형