본문 바로가기
개인 공부

Pandas 개념 및 기본정리

by KwonSoonBin 2021. 9. 26.

Pandas

구조화된 데이터를 효과적으로 처리하고 저장할 수 있는 파이썬 라이브러리. Array 계산에 특화된 numpy를 기반으로 만들어져서 다양한 기능을 제공한다.

 

Series : numpy array가 보강된 형태, data와 index를 가지고 있다.numpy array에서 사용했던 연산자들을 활용할 수 있다.DataFrame : 여러 개의 Series가 모여서 행과 열을 이룬 데이터를 말한다.

 

numpy array에서 사용했던 sum, mean 등을 사용할 수 있다(정수일 경우)

# import pandas as pd

df.isnull() 누락된 데이터 체크

df.notnull() 누락된 데이터 체크

df.dropna() 누락된 데이터 제거

df.fillna('aaaa') 누락된 데이터를 'aaaa'로 채워줌

df.sort_values('column', ascending=False ) 열(columns)에 맞춰 값을 정렬한다.(기본 True=오름차순, False=내림차순)

여러개의 열을 각각 다른 방식으로 정렬 가능하다.

df.sort_values(['column1', 'column2'], ascending=[False, True ]) #column1은 내림차순 column2은 오름차순

df.groupby('column').sum() # .mean(), 조건부로 집계를 해 준다. 보통 sum, mean사용
#aggregate 집계를  한번에 계산하는 방법이 있다는 것도 알아두자

 

조건으로 검색하기 

조건에 맞는 dataframe row 를 추출 가능하다

결과는 True, False로 나타난다.

import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(5, 2), columns=["A", "B"])
df[(df["A"] < 0.5) & (df["B"] > 0.3)]
df.query("A < 0.5 and B > 0.3")

 

함수로 데이터 처리하기

 

apply : groupby 통해서 묶인 데이터에 함수 적용해 준다.

df.groupby('key').apply(lambdax: x.max() -x.min())
df= pd.DataFrame(np.arange(5), columns=["Num"])
defsquare(x):
	returnx**2
df["Num"].apply(square)
df["Square"] = df.Num.apply(lambdax: x ** 2)

filter : groupby를 통해서 그룹 속성을 기준으로 데이터 필터링을 해 준다.

deffilter_by_mean(x):
	returnx['data2'].mean() > 3
df.groupby('key').mean()
df.groupby('key').filter(filter_by_mean)

get_group groupby묶인데이터에서key값으로데이터를가져올있다

df= pd.read_csv("./univ.csv")
df.head()
df.groupby("시도").get_group("충남")
len(df.groupby("시도").get_group("충남"))

 

pivot_table : 데이터에서 필요한 자료만 뽑아서 새롭게 요약

  • Index : 행 인덱스로 들어갈key
  • Column : 열 인덱스로 라벨링될 값
  • Value : 분석할데이터, 데이터로 사용할 열
  • aggfunc : 데이터 집계함수 
pdf1 = pd.pivot_table(
					 df,				 # 피벗할 데이터프레임
                     index = 'class',    # 행 위치에 들어갈 열
                     columns = 'sex',    # 열 위치에 들어갈 열
                     values = 'age',     # 데이터로 사용할 열
                     aggfunc = 'mean')   # 데이터 집계함수
pdf1

결과

출처 https://yganalyst.github.io/data_handling/Pd_14/

 

 

 

 

 

 

 

 

출처 및 자료 참고 https://aitrack.lms.elice.io/home

'개인 공부' 카테고리의 다른 글

Numpy 개념 및 기본정리  (0) 2021.09.26
List comprehension(LC)과 삼항연산자  (0) 2021.09.25
데이터 사이언티스트(Data Scientist) 란?  (0) 2021.09.18

댓글