판다스란?
수식으로 계산할 수 있고 시각화도 할 수 있는 데이터 분석도구
데이터 셋을 이용한 다양한 통계 처리 기능을 제공한다.
표 형태의 데이터를 다루는데 특화된 파이썬 모듈
대용량 데이터를 빠르고 처리할 수 있음
https://pandas.pydata.org/pandas-docs/version/1.0.0/getting_started/10min.html
별칭으로 판다스 불러오기
import pandas as pd
Data Frame
df = pd.DataFrame(
{"a" : [4, 5, 6],
"b" : [7, 8, 9],
"c" : [10, 11, 12]},
index = [1, 2, 3])
df
a, b, c라는 컬럼을 가지는 data frame이 생성이된다.
Series
df["a"]
df["a"]를 통해 a 컬럼의 4, 5, 6 값이 출력이 된다. 이를 Series 데이터라고 부른다.
df[["a"]]
대괄호를 한번 더 쓸경우 data frame과 같은 형태로 출력이 된다.
위에서 봤듯이 DataFrame은 2차원의 구조를 가지고 있고, Series는 1차원의 구조를 가지고 있다.
Subset
df["a"] > 4
컬럼 a의 값중 4보다 큰 값을 true와 false를 통해 나타낸다.
df[df["a"] > 4]
위를 다시 df로 감싸주면 2번째, 3번째값만 가져오게 된다.
행을 기준으로 값을 가져올때는 boolean expr을 이용하여 값을 가져온다.
df[df.Length > 7]
column을 기준으로 값을 가져올때는 대괄호를 한번사용하면 series 형태로, 두번 사용하면 data frame 형태로 값을 가져온다.
이때 한개의 column 만 가지고 올때는 대괄호 한개를 이용하면 된다.
그러나 2개 이상의 column을 가지고 올경우 대괄호를 한개만 사용하면 오류가 발생한다.
따라서 2개 이상의 column을 가지고 올 경우에는 대괄호를 2개 이용하여 data frame 형태로 가져온다.
Summarize Data
df["a"].value_counts()
Categorical한 값의 빈도수를 구하는 방법
6, 5, 4가 하나만 있기때문에 빈도수가 1로 측정
len(df)
df의 길이를 확인 할 수 있음
Reshaping
(1) a 컬럼 기준으로 정렬
df["a"].sort_values()
(2) DataFrame 전체에서 "a"값을 기준으로 정렬하기
df.sort_values("a")
(3) 역순으로 정렬
df.sort_values("a", ascending=False)
(4) "c"컬럼 drop 하기
df = df.drop(["c"], axis=1)
df
기본옵션 axis=0은 행을 기준으로 drop. 따라서 axis=1을 이용하여 열을 기준으로 drop하도록 해야함
Group Data
(1) "a" 컬럼값을 Groupby하여 "b"의 컬럼값 평균값 구하기
df.groupby(["a"])["b"].mean()
"a" 컬럼값을 Groupby하여 "b"의 컬럼값 평균값, 합, count 구하기
df.groupby(["a"])["b"].agg(["mean","sum","count"])
describe를 이용하여 전반적인 data를 요약할 수 있음
df.groupby(["a"])["b"].describe()
2) pivot_table로 평균값 구하기
pd.pivot_table(df, index="a")
기본값은 평균을 구하기로 되어있음
Plotting
1) 꺾은선 그래프 그리기
df.plot()
2) 막대그래프 그리기
df.plot.bar()
3) 밀도함수 그리기
df.plot.density()
이외...