공부일기/부스트코스
파이썬으로 시작하는 데이터 사이언스 - 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)
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()
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()
위의 내용은 네이버 [부스트코스] '파이썬으로 시작하는 데이터 사이언스'를 정리한 내용입니다.
전에 학습한 생활코딩 머신러닝 강의를 복습하는 중 판다스 코드가 낯설게 느껴져 새로운 강의를 듣기 시작했다.
공공데이터를 이용 및 활용하는 강의인데 공공데이터포털에서 다른 데이터로 받아볼 수 있으니 굉장히 재밌을 거 같다 !
참고.