파워 파이썬/패키지

강력한 pandas를 이용한 데이터 처리 1

상선약수64 2023. 10. 1. 07:07
반응형

데이터 분석을 위한 필수 패키지는 Pandas, Numpy 그리고 Matplotlib이고, 판다스는 넘파이를 기반이기 때분에 처리속도가 빠르고 행과 열로 구조화된 데이터프레임을 조작하고 데이터 처리와 분석을 위한 다양하면서 강력한 함수를 지원합니다.

 

판다스는
데이터 처리와 분석을 위한 다양한 함수 지원

 

https://pandas.pydata.org/

 

pandas - Python Data Analysis Library

pandas pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language. Install pandas now!

pandas.pydata.org

 

판다스의 주요 특징
  • 넘파이 기반으로 처리속도가 빠르며, 효율적으로 데이터를 분석할 수 있습니다.
  • 이종(다른 데이터형) 자료형의 열을 가진 테이블 형태의 데이터, 시계열 데이터, 다양한 관측 통계 데이터를 처리하는데 적합합니다.
  • 판다스는 아래의 총 세가지 데이터 구조를 사용합니다.이중 데이터프레임이 가장 많이 사용됩니다.

      - 시리즈(Series)

      - 데이터프레임(DataFrame)

      - 패널(Panel)

  • 주로 판다스가 잘하는 일은 아래와 같습니다.

      - 결측치 데이터 처리와 필터링

      - 데이터 추가와 삭제

      - 다양한 데이터 조작

      - 파이썬 리스트, 딕셔너리, 넘파이 배열을 데이터프레임으로 손쉽게 변환

      - 데이터 시각화

       - 데이터프레임 분할 및 결합

      - 기본적인 통계 처리 등

 

 

1. 시리즈(Series)

 

  • 시리즈는 1차원 배열의 값(values)에 각 값에 대응되는 인덱스(index)를 부여할 수 있는 자료구조입니다. 인덱스에 라벨링을 하지 않은 경우, s[0], s[1] 접근할 수 있습니다.
import pandas as pd

s = pd.Series([17000, 10000, 40000, 50000])
print(s[0]) #인덱스로 접근 
  • 시리즈는  각 값에 대응되는 인덱스(index)를 부여할 수 있는 자료구조입니다. 인덱스의 라벨로 접근할 수 있습니다.
import pandas as pd

s = pd.Series([17000, 10000, 40000, 50000],
              index=["메론", "수박", "피자", "와인"])
print(s['피자']) #인덱스라벨로 접근
    - 위의 시리즈를 출력하면
print("시리즈 값 : {}.".format(s.values))
print("시리즈 인덱스 : {}" .format(s.index))

  • 판다스는 딕셔너리 자료구조를 그대로 사용하여 시리즈를 생성할 수 있습니다.(주석을 꼭 확인하세요)
#딕셔너리를 이용하여 sales_se 시리즈를 생성
sales={"1월" : 10500, "2월" : 70000, "3월" : 60500, "4월" : 432000, "5월": 500000 } #딕셔너리
sales_se = pd.Series(sales) #딕셔너리 키가 시리즈의 인덱스가 됨
print(sales_se)

출력결과 

 

2. 데이터프레임

 

  • 데이터프레임은 행과 열로 구성된 2차원 자료구조입니다. 데이터프레임을 생성할 때는 판다스의 DataFrame() 메소드를  사용합니다. 
month_se = pd.Series(["1월", "2월", "3월", "4월", "5월"])
sales_se=pd.Series([10500, 70000, 605600, 432000, 500000])
expense_se=pd.Series([9500, 560000, 505600, 342000, 450000])
df = pd.DataFrame({"월":month_se, "판매":sales_se, "비용":expense_se})
print(df)

  • 데이터프레임 자료구조를 활용하여 간단한 기술통계량을 확인할 수 있습니다. mean() : 평균, max() : 최대값, min() : 최소값, std() : 표준편차 등을 사용하시면 됩니다.
print("판매금액", df['판매'].mean())
print("최대 비용", df['비용'].max())

 

3. 외부 데이터 파일 읽기
  • pandas는 CSV, 텍스트, Excel, SQL, HTML, JSON 등 다양한 데이터 파일을 읽고 데이터 프레임을 생성할 수 있습니다. csv파일을 읽으려면 read_csv() 메소드, excel파일을 읽으려며 read_excel() 메소드를 사용하면 됩니다.
  • 코랩에서는 경로복사라는 메뉴를 사용하면 데이터파일 경로를 쉽게 파악할 수 있습니다. 경로복사를 하고, 외부파일을 선택할 때 Ctrl+V를 붙이면 됩니다. 

데이터 파일 경로복사

import pandas as pd
df_data = pd.read_excel("/content/drive/MyDrive/ML Lecture/data/sinor_data.xlsx", sheet_name="data")
df_data.head()

 

 

프로그램의 소스 : https://github.com/sense64/data_viz/blob/main/series_prg01.ipynb