데이터 분석 도구(colab) & 데이터 기초

2024. 9. 28. 22:52python study/sw와 ai 데이터 분석

Colab

  • 클라우드 기반의 무료 파이썬 개발 환경
  • 인공지능과 데이터 분석에 필요한 패키지가 제공됨
  • 작성한 프로그램은 개인 구글 드라이브에 자동 저장됨

 

colab사용하기

Pandas

  • Panel Data Analysis
  • 대용량의 데이터 처리를 지원함
  • 데이터 관리와 정제 기능을 가짐
  • 머신러닝, 데이터 분석의 라이브러리에서 사용
  엑셀 판다스
자동화 -기본적으로 사람의 손으로 작업
-VB로 자동화 가능하기는 함
-코딩을 통한 자동화
대용량 데이터 처리 -큰데이터를 처리하기 힘듦
-데이터 처리 속도 느림
-데이터 처리속도가 빠름
분석 방법 -지원되는 기능에 한정 -사용자가 코딩을 통해 다양한 창의적인 데이터 분석이 가능함

pandas설치 방법 및 라이브러리 선언

  • 판다스 설치하기
pip install pandas
  •  판다스 라이브러리 선언
  • 보통 as를 사용하여서 이름을 pd로 줄여 쓰기도 한다.
import pandas as pd

판다스 자료 구조

  • Series: 1차원 배열 형태로써 같은 종류 데이터가 나열되어 있음
  • DataFrame: 데이터를 표 형식 데이터 구조로 저장

Series

import pandas as pd
data=pd.Series([3,4,5])
data

  • index를 활용하여서 이름을 직접 부여할 수 있다.
import pandas as pd
data=pd.Series([3,4,5],index=['a','b','c'])
data

DataFrame

  • pd.DataFrame({'key':'data', '' })
    key: 열의 이름
    data: 열에 해당하는 값들
import pandas as pd
data=pd.DataFrame({'name':['a','b','c'],'age':[10,20,30]})
print(data)
  name  age
0    a   10
1    b   20
2    c   30
  • columns를 활용하여서 열의 이름 지정가능
import pandas as pd
data=pd.DataFrame({'name':['a','b','c'], 'age':[10,20,30]},columns=['name','age'])
print(data)
  name  age
0    a   10
1    b   20
2    c   30

공공데이터 파일 읽어오기

CSV, txt파일 

  • CSV(Comma Separated Values): 콤마로 구분된 파일
  • 공공데이터의 경우 csv로 제공하는 경우가 많음

CSV, txt파일 읽어 오기

  • 파일 읽고 DataFrame으로 변환하여 저장
  • pd.read_csv('파일 이름', 속성) 형태로 사용
import pandas as pd
data=pd.read_csv('/content/시군구별 교통사고 통계.csv', encoding='euc-kr')
data.head()

delimeter="구분 기호"

  • 열을 구분하는 속성
  • 구분 기호가 쉼표로 되어 있으면 생략가능
import pandas as pd

df = pd.read_csv("/content/exam2.txt",delimiter='\t')
print(df)
 name  score  absent 
0   kim     95        3
1  choi    100        0
2   lee     90        2
3  park     85        1
4   cho     77        5

header

  • 쉼표로 구분되고, 헤더가 없는 파일인 경우 보통 사용
  • header=None: 첫 행에 열이름이 없음을 의미
  • header=[1]: 첫 번째 인덱스에 있는 행을 열이름으로 설정해 준다.
  • header=[1:3]: 첫 번째부터 세 번째까지의 행을 열이름으로 자동 설정해 준다.
import pandas as pd

df = pd.read_csv('exam.txt',header=None)
print(df)
      0    1  2
0   kim   95  3
1  choi  100  0
2   lee   90  2
3  park   85  1
4   cho   77  5
import pandas as pd

df = pd.read_csv('exam.txt',header=[1,3])
print(df)
  choi  100  0 
  park   85  1 
0  cho   77   5 #1~3번째 까지를 제목으로 설정

skiprows=[ ]

  • 단어 뜻 그대로 특정 열을 건너뛰는 역할을 한다.
  • skiprows=[1,3]: 1과 3열을 스킵
import pandas as pd

df = pd.read_csv('exam.txt',skiprows=[1,3])
print(df)
   kim   95   3  #skiprows 처리후
0  lee   90    2
1  cho   77    5
   kim     95        3  #skiprows 처리전
1  choi    100        0
2   lee     90        2
3  park     85        1
4   cho     77        5

encoding

  • encoding="": 큰 따옴표 안에 인코딩 방식을 지정해 준다.
  • euc-kr: 2byte 한글인코딩, cp949: MS office, utf-8: 유니코드 인코딩
import pandas as pd

df = pd.read_csv('exam4.csv',encoding="euc-kr")
print(df)
   연도  출생아수 사망자수
0  2011  471,265  257,396
1  2012  484,550  267,221
2  2013  436,455  266,257
3  2014  435,435  267,692
4  2015  438,420  275,895
5  2016  406,243  280,827
6  2017  357,771  285,534
7  2018  326,900  298,820

숫자 데이터 변경하기

  • ' , '가 포함된 숫자는 문자열로 처리
  • 세 번 0이 반복될 때 ' , '를 사용하기 때문에 thousands라는 속성을 사용해야 한다.
  • thousands=' , ': ' , '가 포함되어 있을 때 유용함
  • 위의 출생아수 사망자수 데이터를 예시로 든다면 ' , '가 포함된 자료는 숫자가 아니라 문자열로 나타나기 때문에 thousands를 활용해서 숫자형으로 변경해줘야 한다.
import pandas as pd

df = pd.read_csv('exam4.csv',encoding='euc-kr',thousands=',')
print(df)
   연도 출생아수 사망자수
0  2011  471265  257396
1  2012  484550  267221
2  2013  436455  266257
3  2014  435435  267692
4  2015  438420  275895
5  2016  406243  280827
6  2017  357771  285534
7  2018  326900  298820
  • info함수를 활용하여서 자료형을 확인하면 숫자형으로 변경된 것을 확인할 수 있다.
 0   연도      8 non-null      int64
 1   출생아수    8 non-null      int64
 2   사망자수    8 non-null      int64

CSV, excel, json로 저장하기

  • to_csv: csv로 저장
  • to_excel: excel로 저장
  • to_json: json으로 저장
birthData.to_csv('birthData.csv')
birthData.to_excel('birthData.xlsx')
birthData.to_json('birthData.json')

'python study > sw와 ai 데이터 분석' 카테고리의 다른 글

데이터 전처리  (0) 2024.09.29
공공 데이터의 이해  (1) 2024.09.29
데이터 구성(seaborn data)  (1) 2024.09.26
데이터 종류와 구조  (2) 2024.09.16
빅데이터와 데이터 분석  (1) 2024.09.16