데이터 분석 도구(colab) & 데이터 기초
2024. 9. 28. 22:52ㆍpython 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 |