pandas 기초 익히기
pandas
pandas는 수식으로 계산할 수 있고 시각화도 할 수 있는 데이터 분석도구이다. 행과 열로 된 데이터를 다룰 때 사용한다.
엑셀로도 데이터를 분석할 수 있는데 pandas를 사용하는 이유가 무엇일까?
- 엑셀로는 힘든 대용량의 데이터를 pandas가 분석할 수 있기 때문이다.
pandas와 관련된 문서로 여러 문서들이 있는데, 그중 '10 minutes to pandas' 문서를 참고하여 실습을 진행하면 pandas의 전반적인 것을 익힐 수 있다고 하니 제대로 실습해 보길 추천한다.
https://pandas.pydata.org/pandas-docs/version/1.0.0/getting_started/10min.html
Pandas 실습
jupyter notebook을 사용하여 실습을 진행한다.
라이브러리 로드
먼저 pandas 라이브러리를 사용하기 위해 라이브러리를 import 한다.
import pandas as pd
pandas 라이브러리를 pd라는 별칭으로 불러왔다.
DataFrame
a, b, c 열을 가지는 DataFrame을 생성한다.
df = pd.DataFrame(
{"a" : [4, 5, 6],
"b" : [7, 8, 9],
"c" : [10, 11, 12]},
index = [1, 2, 3])
df
다음과 같이 a, b, c 열을 가진 DataFrame이 생성된다.
Series
df["a"] 를 통해 a 열에 있는 요소를 출력하면 다음과 같이 4, 5, 6 이 출력되는데 이를 Series 데이터라 부른다.
df["a"]
이를 대괄호 두 개로 묶어주면 다시 DataFrame 형태로 변환되게 된다.
df[["a"]]
두 결과를 통해 Series 데이터는 1차원을, DataFrame은 2차원 자로구조를 지니는 것을 확인할 수 있다.
Subset
이번에는 일부 값만 불러오도록 해보자.
- a 행을 기준으로 4보다 큰 값만 가져오기
df[df["a"] > 4
- a, b열을 기준으로 두 개 이상의 값 불러오기
df[["a", "b"]]
※ 주의 사항
두 개 이상의 값을 불러올 때는 반드시 DataFrame 형태로 불러와야 한다.
Summarize Data
value_counts()를 통해 데이터의 빈도수를 구할 수 있다.
df["a"].value_counts()
a 열에 있는 데이터의 빈도수를 나타낸 결과이다.
Reshaping
Reshaping과 관련된 pandas의 메서드는 다음과 같다.
- sort_values()
- drop()
1. sort_values()
- a 열을 기준으로 정렬하기
df["a"].sort_values()
- 전체 데이터를 a를 기준으로 역순으로 정렬하기
df.sort_values("a", ascending=False)
- c 열 drop 하기
df = df.drop(["c"], axis=1)
df
Group Data
Group와 관련된 pandas의 메서드는 다음과 같다.
- groupby()
- pivot_table()
1. groupby
- "a" 열 값을 Groupby 하여 "b" 열의 평균값 구하기
df.groupby(["a"])["b"].mean()
- 여러 개의 값을 구할 때 'agg' 사용
df.groupby(["a"])["b"].agg(["mean", "sum", "count"])
- descirbe를 통해 한꺼번에 구하기
df.groupby(["a"])["b"].describe()
2. pivot_table
- pivot_table로 평균값 구하기
pd.pivot_table(df, index="a")
Plotting
plotting을 통해 데이터를 가지고 다양한 시각화가 가능하다.
- 꺾은선 그래프 그리기
df.plot()
- 면적그래프 그리기
df.plot.area()
- 막대그래프 그리기
df.plot.bar()
- 밀도 함수 그리기
df.plot.density()
'Programming > Python' 카테고리의 다른 글
[파이썬] 데이터 분석 - 연봉 예측 분석 (회귀 분석) (0) | 2023.08.23 |
---|---|
[파이썬] 데이터 분석 - 1. 아나콘다(Anaconda) 설치와 주피터 노트북(Juptyer Notebook) 실행 (0) | 2023.08.16 |
[파이썬] 문법 정리 - 리스트 자료형 (0) | 2023.07.11 |
[파이썬] 문법 정리 - 수 자료형 (0) | 2023.06.25 |