728x90
반응형
우리가 생각하는 데이터는 어떤 데이터가 있을까?
스마트폰 메모리에 저장되어 있는 데이터는 사진, 동영상, 어플리케이션 등등으로 이루어져 있다.
이같은 데이터는 모두 같은 종류의 데이터일까?
- 데이터의 구분
- 정형 데이터
고정된 형식으로 저장된 데이터- 엑셀
- 관계형 DB
- 반정형 데이터
고정된 형식은 아니지만 기본 구조가 있는 데이터- XML
- HTML
- JSON
- 비정형 데이터
- 문서
- 이미지
- 동영상
- 정형 데이터
- 데이터 준비
외부 데이터를 불러와 정형 데이터 구조로 변환해주는 기능을 제공하는
판다스 라이브러리를 이용해 데이터를 불러오고 쓰도록 한다.
- 불러오기
read_(파일 포맷)
- 쓰기
to(파일 포맷)
#pip로 python만 한정된 패키지 관리자고 conda 는 범용 설치 가능
- 데이터 백업
- 원 데이터를 백업하는 과정
- raw 데이터를 손실하지 않기위해 가장 먼저 해야하는 작업
1. .csv
#판다스 라이브러리 불러오기
import pandas as pd
#파일경로를 찾고 변수 file_path에 저장
file_path='C:\data\bicycle.csv'
#read csv() 함수로 데이터프레임 변환
df1= pd.read_csv(file_path, engine='python')
df1
파일경로를 입력할 때 \와 \의 차이를 구분해야한다.
\로 입력할 때는 \\로 입력해야 경로를 인식한다.
#데이터 불러오기
import pandas as pd
file_path = 'C:\data\bicycle.csv'
df=pd.read_csv(file_path, encoding='CP949')
#to_csv 함수를 사용 csv 파일로 내보내기
#data 폴더에 sample_data.csv 저장
df4.to_csv('C:\data\sample_data.csv')
#저장 파일 확인
file_path='C:\data\sample_data.csv'
df5=pd.read_csv(file_path)
print(df5)
2. .xlsx
import pandas as pd
file_path = 'C:\data\bicycle.xlsx'
df2 = pd.read_excel(file_path, encoding='CD949')
#데이터프레임 출력
df2
#데이터 불러오기
import pandas as pd
file_path='C:\data\bicycle.xlsx'
df6=pd.read_excel(file_path, encoding='CP949')
#to_excel 메소드를 사용하여 excel 파일로 내보내기
#파일명은 sample_data1.xlsx로 저장
df6.to_excel('C:\data\sample_data1.xlsx')
3. .json
import pandas as pd
file path='C:\data\read.json'
df3 = pd.read_json(file_path)
#데이터 프레임 출력
df3
#데이터 불러오기
import pandas as pd
file_path= 'C:\data\read.csv'
df7=pd.read_jsom(file_path)
df7
#to_json() 메소드를 사용하여 JSON 파일로 내보내기
#파일명은 smaple_data_json.json으로 저장
df7.to_json ('C:\data\sample_data_json.json')
- 피클 저장하기
파이썬의 모든 객체를 파일로 저장하는 피클
저장 to_pickle, 불러오기 read_pickle
import pickle
import pandas as pd
temp=pd.DataFrame({'a':[1], 'b':[2]})
#데이터 저장
temp.to_pickle('filename.pkl')
#데이터 로드
data=pd.read_pickle('filename.pkl')
- 파이썬 웹 크롤링
BeautifulSoup 라이브러리를 이용한 웹 크롤링
pip install requests
pip install BeautifulSoup4
라이브러리 설치
- BeautifulSoup 문법
- from bs4 import BeautifulSoup
- a=BeautifulSoup(html소스, 'html.parser')
- a.find('p')
- a.find_all('p',class_=,id=)
- a.get_text()
- a.p['class']
- 네이버 웹 크롤링
1. 네이버 날씨 웹페이지 가져오기
from bs4 import BeautifulSoup as bs
from pprint import pprint
import requests
html=requests.get('https://search.naver.com/search.naver?ie=UTF-8&query=%EB%82%A0%EC%94%A8&sm=chr_hty')
print(html.text)
2. 파싱
- html 구성 <태그 속성 = 속성값>
- 태그 : div, 속성 : class, 속성값 : detial_box
from bs4 import BeautifulSoup as bs
from pprint import pprint
import requests
html = requests.get('https://search.naver.com/search.naver?ie=UTF-8&query=%EB%82%A0%EC%94%A8&sm=chr_hty')
soup = bs(html.text, 'html.parser')
#미세먼지 관련 블록 추출
dustdata_one=soup.find('div',{'class': 'detail_box'})
print(dustdata_one)
from bs4 import BeautifulSoup as bs
from pprint import pprint
import requests
html=requests.get('https://search.naver.com/search.naver?ie=UTF-8&query=%EB%82%A0%EC%94%A8&sm=chr_hty')
soup = bs(html.text, 'html.parser')
#미세먼지 관련 블록 추출
dustdata_one = soup.find('div', {class:'detail_box'})
dustdata_all=dustdata_one.findAll('dd')
pprint(dustdata_all)
3. 텍스트 추출
from bs4 import BeautifulSoup as bs
from pprint import pprint
import requests
html = requests.get('https://search.naver.com/search.naver?ie=UTF-8&query=%EB%82%A0%EC%94%A8&sm=chr_hty')
soup =bs(html.text, 'html.parser')
#미세먼지 관련 블록 추출
dustdata_one = soup.find('div',{'class':'detail_box'})
dustdata_all=dustdata_one.findAll('dd')
fine_dust_code = dustdata_all[0].find('span', {'class':'num'})
fine_duest_con = dustdata_all[0].find('span', {'class':'num'}).text
print(fine_dust_code)
print(find_dust_con)
미세먼지
from bs4 import BeautifulSoup as bs
from pprint import pprint
import requests
html = requests.get('https://search.naver.com/search.naver?ie=UTF-8&query=%EB%82%A0%EC%94%A8&sm=chr_hty')
soup =bs(html.text, 'html.parser')
#미세먼지 관련 블록 추출
dustdata_one = soup.find('div',{'class':'detail_box'})
dustdata_all=dustdata_one.findAll('dd')
fine_dust_code = dustdata_all[0].find('span', {'class':'num'}).text
fine_duest_con = dustdata_all[1].find('span', {'class':'num'}).text
print(ultra_fine_dust)
초미세먼지
728x90
반응형
'Computer Engineering > Big Data Analytics Using Python' 카테고리의 다른 글
[빅데이터 분석] 5. 데이터 클린징 (0) | 2021.03.15 |
---|---|
[빅데이터 분석] 4. 데이터 보기 (0) | 2021.03.15 |
[빅데이터 분석] 2. 파이썬 주요 문법 정리 (0) | 2021.03.13 |
[빅데이터 분석] 1. 빅데이터 분석 개발환경 구축하기 (0) | 2021.03.13 |
파이썬으로 빅데이터 분석하기 (0) | 2021.03.13 |