Programming/Python

[파이썬] 데이터 분석 - 2.1 pandas 기초 익히기

아윤_ 2023. 8. 16. 17:31

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

 

10 minutes to pandas — pandas 1.0.0 documentation

This is a short introduction to pandas, geared mainly for new users. You can see more complex recipes in the Cookbook. Time series pandas has simple, powerful, and efficient functionality for performing resampling operations during frequency conversion (e.

pandas.pydata.org

 

 

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차원을, DataFrame2차원 자로구조를 지니는 것을 확인할 수 있다.

 

 

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()