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/
'개인 공부' 카테고리의 다른 글
Numpy 개념 및 기본정리 (0) | 2021.09.26 |
---|---|
List comprehension(LC)과 삼항연산자 (0) | 2021.09.25 |
데이터 사이언티스트(Data Scientist) 란? (0) | 2021.09.18 |
댓글