공부일기/부스트코스

파이썬으로 시작하는 데이터 사이언스 - 1. Pandas

Youngbin Kim 2020. 11. 18. 00:04

1. pandas란?

 

  • panel data system의 약자. 행과 열로 된 데이터(panel data)
  • 엑셀에 비해 대용량의 데이터를 빠르게 처리할 수 있다는 장점이 있고,
    주피터 노트북 등을 통해 기존의 소스코드를 재사용할 수 있다. 월별, 주별 반복 작업에 용이하다.
  • 파이썬 문법을 통해 작동한다.

 

2. 치트시트를 활용한 기초 학습

import pandas as pd

우선 판다스 라이브러리를 불러온다. as pd를 활용해 pandas.DataFrame를 pd.DataFrame으로 간단하게 쓸 수 있다.

 

 

  • DataFrame: 기본적으로 행과 열로 구성된 데이터
df = pd.DataFrame(
{"a" : [4, 5, 6],
"b" : [7, 8, 9],
"c" : [10, 11, 12]},
index = [1, 2, 3])
df

실행하게 되면 아래와 같은 표가 출력된다.

 

 

 

  • Series : df["a"]로 컬럼 출력 시 a 컬럼에 있는 값들이 출력되는데, 이것을 Series 데이터라고 부른다.
              대괄호를 한번 더 써주면 DataFrame의 형태로 a 컬럼의 값들이 출력된다. Series는 1차원의 구조를
              지닌다.

 

 

  • Subset(일부 값만 불러오기): 
# 행 기준
df[df["a"] > 4] # a 컬럼에서 4 이상의 값들만 불러온다.

# 열 기준
df[["width", "length", "species"]]

# 두 개 이상의 값을 아래와 같이 불러올 경우 Series형태로 불러오게 되면 오류가 발생한다.
df["a" "b"]

# 따라서 아래와 같은 DataFrame의 형태로 불러온다.
df[["a","b"]]

 

 

  • Summarize Data

Categorical한 값의 빈도수를 구하기

df["a"].value_counts()
# a 칼럼에서 각 값들의 빈도수를 불러온다.

실행 시 아래와 같은 결과를 보여준다.

 

  • Reshaping

1. sort_values()

df = pd.DataFrame(
{"a" : [4 ,5, 6, 4],
"b" : [7, 8, 9, 9],
"c" : [10, 11, 12, 10]},
index = [1, 2, 3, 4])

# 1. a 컬럼을 기준으로 정렬하기 (a 컬럼의 값을 기준으로 정렬, 기본적으로 오름차순)

df["a"].sort_values()


# 2. a 컬럼 값 기준으로 정렬(False일 경우 역순, 기본 값은 True)

df.sort_values("a", ascending=False)

 

1번 실행 결과

 

2번 실행 결과

 

 

2. drop()

# 2번 index drop
df.drop([2])


# axis=1 설정을 통해 컬럼을 기준으로 드랍. 기본 값 axis=0
df.drop(["c"], axis=1)

 

 

 

  • Group Data

1. groupby

# df.groupby(["a"])["c"].sum()
# df.groupby(["a"])["c"].mean()
# df.groupby(["a"])["c"].count()
# 위의 각 함수들을 통해 a 컬럼 값을 기준으로 c의 컬럼 평균값을 구할 수 있다.

# 1. agg()를 통해 모든 값을 나타낼 경우
df.groupby(["a"])["c"].agg(["mean", "sum", "count"])

# 2. describe()를 통해 표현
df.groupby(["a"])["b"].describe()

1번 실행 결과
2번 실행 결과

 

 

2. pivot_table

# pivot_table로 합 구하기
pd.pivot_table(df, index="a", values="b", aggfunc="sum")

 

 

3. plot

 

# 꺾은선 그래프
df.plot()

# 꺾은선 그래프 영역 색 채우기
df.plot.area()

# 막대그래프 그리기
df.plot.bar()

# 밀도함수 그리기
df.plot.density()

 

 

 

위의 내용은 네이버 [부스트코스] '파이썬으로 시작하는 데이터 사이언스'를 정리한 내용입니다.

전에 학습한 생활코딩 머신러닝 강의를 복습하는 중 판다스 코드가 낯설게 느껴져 새로운 강의를 듣기 시작했다. 

공공데이터를 이용 및 활용하는 강의인데 공공데이터포털에서 다른 데이터로 받아볼 수 있으니 굉장히 재밌을 거 같다 !

 

 

 

참고.

www.edwith.org/boostcourse-ds-510/lecture/59933/