Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 빅데이터분석
- 팀스파르타
- 총과 카드만들기
- 불순도제거
- Dense_Rank
- Sum
- 빅데이터
- 단순회귀 분석
- difftime
- if문 작성법
- 여러 데이터 검색
- 데이터분석
- sqld
- loop 문
- %in%
- 히스토그램 그리기
- Intersect
- 그래프 생성 문법
- 막대그래프
- 순위출력
- max
- count
- 회귀분석
- 데이터분석가
- 정보획득량
- 회귀분석 알고리즘
- merge
- sql
- 상관관계
- 그래프시각화
Archives
- Today
- Total
ch0nny_log
[빅데이터분석] Python_37. 파이썬 웹스크롤링9 (쿠팡) & pandas 본문
◈ 쿠팡 웹 스크롤링
※ 쿠팡 웹스크롤링 실습
import urllib.request # 웹요청 모듈 from bs4 import BeautifulSoup # html 파싱 모듈 from selenium import webdriver # 브라우저 제어 모듈 from selenium.webdriver.chrome.service import Service # 드라이버 관리 모듈 from selenium.webdriver.common.by import By # 요소 탐색 모듈 from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys import time # 대기 시간 정해주는 모듈 !pip install pandas import pandas as pd def cuppang_shopping(keyword, n): # 크롬 로봇 드라이버의 위치를 지정 chrome_options = Options() service = Service('C:\\data\\chromedriver-win32\\chromedriver-win32\\chromedriver.exe') driver = webdriver.Chrome(service=service, options=chrome_options) # 검색어 입력 text1 = urllib.parse.quote(keyword) # 데이터 수집할 리스트 선언 list_name = [] # 상품명 list_price = [] # 상품가격 # 페이지 번호를 제공할 for loop 문 작성 for i in range(1, n+1): url ="https://www.coupang.com/np/search?q=" + text1 + "&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page=" + str(i) + "&rocketAll=false&searchIndexingToken=1=9&backgroundColor=" # 크롬 로봇이 위의 url 을 열게 합니다. driver.get(url) time.sleep(2) #마우스 스크롤을 아래로 내려서 전체 페이지가 다 보이게 합니다. for i in range(1,6): driver.find_element(By.XPATH, value='//body').send_keys(Keys.END) time.sleep(0.5) #보이는 페이지의 html 코드를 뷰티플 스프로 파싱합니다. soup = BeautifulSoup( driver.page_source, 'html.parser') # 상품정보가 있는 HTML 코드 부분으로 접근 goods_list = soup.select('ul.search-product-list') # 상품명, 가격 가져오기 for v in goods_list: # 상품명 item_name = v.select('div.name') for i in item_name: list_name.append( i.text.strip() ) # 가격 item_price = v.select('strong.price-value') for p in item_price: list_price.append( p.text.strip() ) #크롬 로봇 닫기 driver.close() # 판다스 데이터 프레임 생성하기 df = pd.DataFrame( { '상품명' : list_name, '가격' : list_price } ) # 판다스 데이터프레임의 데이터를 csv 파일로 내리기 df.to_csv("c:\\data\\cuppang_shopping.csv", encoding="utf8") cuppang_shopping('그릭 요거트', 1)
※ pandas
1. 판다스 데이터 프레임 불러오기
df = pd.read_csv('c:\\data\\coupang_shopping.csv')
df
2. 위의 코드를 수정해서 리뷰의 수도 출력되게 하시오.
import urllib.request # 웹요청 모듈
from bs4 import BeautifulSoup # html 파싱 모듈
from selenium import webdriver # 브라우저 제어 모듈
from selenium.webdriver.chrome.service import Service # 드라이버 관리 모듈
from selenium.webdriver.common.by import By # 요소 탐색 모듈
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
import time # 대기 시간 정해주는 모듈
def coupang_shopping(keyword, n):
# 크롬 로봇 드라이버의 위치를 지정
chrome_options = Options()
service = Service('C:\\data\\chromedriver-win32\\chromedriver-win32\\chromedriver.exe')
driver = webdriver.Chrome(service=service, options=chrome_options)
# 검색어 입력
text1 = urllib.parse.quote(keyword)
# 데이터 수집할 리스트 선언
list_name = [] # 상품명
list_price = [] # 상품가격
list_review = [] # 상품리뷰수
# 페이지 번호를 제공할 for loop 문 작성
for i in range(1, n+1):
url = 'https://www.coupang.com/np/search?q='+text1+'&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page='+str(i)+'&rocketAll=false&searchIndexingToken=1=9&backgroundColor='
# 크롬 로봇이 위의 url 열게 하기
driver.get(url)
time.sleep(2)
# 마우스 스크롤을 아래로 내려서 전체 페이지가 다 보이게 하기
for i in range(1,6):
driver.find_element(By.XPATH, value='//body').send_keys(Keys.END)
time.sleep(0.5)
# 보이는 웹페이지의 html 코드를 뷰티플 스프로 파싱합니다.
time.sleep(2) # 웹페이지가 다 뜰 수 있도록 기다려줌
# 현재 페이지를 BS 로 파싱
soup = BeautifulSoup(driver.page_source, 'html.parser')
# 광고 상품 정보가 있는 html 코드 부분으로 접근
goods_list = soup.select('ul.search-product-list')
# 상품명 가져오기
for v in goods_list:
# 상품명
item_name = v.select('div.name')
for i in item_name:
list_name.append(i.text.strip())
# 가격
item_price = v.select('strong.price-value')
for p in item_price:
list_price.append(p.text.strip())
# 리뷰수
item_review = v.select('span.rating-total-count')
for x in item_review:
list_review.append(x.text.strip('()'))
# 가장 길이가 긴 리스트의 길이를 기준으로 부족한 값에 0 넣어주기
max_length = max(len(list_name), len(list_price), len(list_review))
list_name.extend([0] * (max_length - len(list_name)))
list_price.extend([0] * (max_length - len(list_price)))
list_review.extend([0] * (max_length - len(list_review)))
# 크롬 로봇 닫기
driver.close()
# 판다스 데이터 프레임 생성하기
df = pd.DataFrame({'상품명' :list_name, '가격' : list_price, '리뷰수' : list_review})
# 판다스 데이터프레임의 데이터를 csv 파일로 내리기
df.to_csv('c:\\data\\coupang_shopping.csv', encoding = 'utf8')
coupang_shopping('그릭요거트', 1)
df = pd.read_csv('c:\\data\\coupang_shopping.csv')
df
3. 위 판다스 데이터프레임 컬럼의 구조를 확인하시오.
df.info()
※ pandasql
1. 위의 판다스 데이터 프레임의 데이터를 SQL 로 SELECT 할 수 있도록 pandasql 을 설치하시오.
!pip install pandasql # 파이썬에서 SQL 을 사용해서 데이터를 검색할 수 있도록 해주는 모듈
2. emp.csv 를 emp 데이터 프레임으로 생성하시오.
import pandas as pd
emp = pd.read_csv("c:\\data\\emp.csv")
emp
3. emp 데이터 프레임에서 이름과 월급을 출력하는데 월급이 높은 순서대로 출력되게 하시오.
from pandasql import sqldf
pysqldf = lambda q : sqldf(q, globals())
q = """ select ename, sal
from emp
order by sal desc; """
pysqldf(q)
문제1. 직업이 SALESMAN 인 사원들의 이름과 월급과 직업을 출력하는데 월급이 높은 사원부터 출력하시오.
from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals()) q = ''' select ename, sal, job from emp where job = 'SALESMAN' order by sal desc; ''' pysqldf(q)
문제2. c 드라이브 밑에 dept.csv 를 가지고 dept 라는 데이터 프레임을 구성하시오.
import pandas as pd dept = pd.read_csv("c:\\data\\dept.csv") dept
문제3. emp 와 dept 를 조인해서 이름과 부서위치를 출력하시오. → 1999 ansi 문법으로 수행해야함!! ( ** where 적어도 되긴 함.)
문제4. 문제. 그릭요거트로 검색한 결과에서 리뷰수가 가장 많은 상품명과 가격과 리뷰수를 출력하시오.from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals()) q = ''' select e.ename, d.loc from emp e join dept d on( e.deptno = d.deptno ); ''' pysqldf(q)
import pandas as pd cp_greek = pd.read_csv('c:\\data\\coupang_shopping.csv')
from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals()) q = ''' select 상품명, 가격, 리뷰수 from cp_greek order by 리뷰수 desc; ''' pysqldf(q)
★ 심화 문제. cp_greek 에서 가격이 높은 순서대로 상품명, 가격, 리뷰 출력하시오.
1. 현재 가격이 문자형이기 때문에 숫자형으로 변환하기
2. 정렬하기cp_greek['가격'] = cp_greek['가격'].str.replace(r'[^\d]', '', regex = True). astype('int64') cp_greek.info()
from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals()) q = ''' select 상품명, 가격, 리뷰수 from cp_greek order by 가격 desc; ''' pysqldf(q)
3. 쿠팡에서 다른 검색어를 검색하여 스크롤링 한 후 리뷰수나 가격이 높은 순서대로 정렬해서 결과를 출력하시오.coupang_shopping('노트북', 1)
from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals()) q = ''' select 상품명, 가격, 리뷰수 from cp_laptop order by 가격 desc;''' pysqldf(q)
※실습1. 기존 코드로 돌렸을 때 나는 오류 확인
※ 실습2. 크롭 로봇이 아니라 정상적으로 웹페이지를 통해서 웹에 접근할 수 있도록함
def get_coupang_data(keyword, pages):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
"Referer": "https://www.coupang.com/"
}
(코드 설명)
"User-Agent": 요청을 보낼 때 웹브라우져에서 요청한다는 것
"Accept-Language": 한국어를 우선으로 하고 그 다음으로 영어, 일반어를 선호한다.
"Referer" : 요청이 어디서 왔는지 나타냄. 쿠팡의 메인페이지에서 요청이 왔다고 알려줌
import requests # 크롬 로봇 안쓰고 웹에 접근하는 모듈
from bs4 import BeautifulSoup
import pandas as pd
def get_coupang_data(keyword, pages):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
"Referer": "https://www.coupang.com/"
}
list_name = []
list_price = []
list_review = []
for page in range( 1, pages+1):
search_url = f"https://www.coupang.com/np/search?q={keyword}&channel=user&page={page}"
response = requests.get(search_url, headers=headers)
# print(response) # 접근 가능한 상태
get_coupang_data('그릭 요거트', 1)
● 상품명 불러오기
import requests # 크롬 로봇 안쓰고 웹에 접근하는 모듈
from bs4 import BeautifulSoup
import pandas as pd
def get_coupang_data(keyword, pages):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
"Referer": "https://www.coupang.com/"
}
list_name = []
list_price = []
list_review = []
for page in range( 1, pages+1):
search_url = f"https://www.coupang.com/np/search?q={keyword}&channel=user&page={page}"
response = requests.get(search_url, headers=headers)
# print(response) # 접근 가능한 상태
if response.status_code == 200: # 사이트 접속이 정상이면
soup = BeautifulSoup( response.text , 'html.parser')
goods_list = soup.select('ul.search-product-list > li') #쿠팡 제품이 있는 곳 태그 주소
print( goods_list)
get_coupang_data('그릭 요거트', 1)
● 상품명, 상품가격, 리뷰수, 별점, 광고 여부,순위 가져오기
import requests # 크롬 로봇 안쓰고 웹에 접근하는 모듈
from bs4 import BeautifulSoup
import pandas as pd
def get_coupang_data(keyword, pages):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
"Referer": "https://www.coupang.com/"
}
list_name = []
list_price = []
list_review = []
list_star = []
list_ad = []
list_rank = []
list_url = []
for page in range( 1, pages+1):
search_url = f"https://www.coupang.com/np/search?q={keyword}&channel=user&page={page}"
response = requests.get(search_url, headers=headers)
#print(response) # <Response [200]> 이렇게 나오면 정상적으로 접근이 된것임
if response.status_code == 200: # 사이트 접속이 정상이면
soup = BeautifulSoup( response.text, 'html.parser')
goods_list = soup.select('ul.search-product-list > li')
#print(goods_list)
for item in goods_list:
#상품명 가져오기
item_name = item.select_one('div.name')
if item_name:
list_name.append( item_name.text.strip() )
else:
list_name.append('')
#상품가격 가져오기
item_price = item.select_one('strong.price-value')
if item_price:
list_price.append( item_price.text.strip() )
else:
list_price.append('')
#리뷰수 가져오기
descriptions_inner=item.select_one('div.descriptions-inner') # 상품의 상세정보
if descriptions_inner and descriptions_inner.select_one('div.other-info'): # 상세정보도 있고 기타 정보도 있으면
item_review = descriptions_inner.select_one('span.rating-total-count')
if item_review:
list_review.append(item_review.text.strip('()'))
else:
list_review.append('0') # 리뷰수가 없으면 0 으로 넣어라
else:
list_review.append('0') # 상품의 기타정보가 없으면 0으로 넣어라
#별점 가져오기
descriptions_inner=item.select_one('div.descriptions-inner')
if descriptions_inner and descriptions_inner.select_one('div.other-info'):
item_star = descriptions_inner.select_one('em.rating')
if item_star:
list_star.append(item_star.text.strip() )
else:
list_star.append('0') # 별점이 없으면 0으로 넣어라 !
else:
list_star.append('0') # 상품의 기타정보가 없으면 0으로 넣어라 !
# 광고 상품 여부 가져오기
descriptions_inner=item.select_one('div.descriptions-inner')
if descriptions_inner and descriptions_inner.select_one('div.other-info'):
item_ad = descriptions_inner.select_one('span.ad-badge-text')
if item_ad:
list_ad.append('O' )
else:
list_ad.append('X') # 광고가 아니면 0으로 넣어라 !
else:
list_ad.append('X') # 상품의 기타정보가 없으면 0으로 넣어라 !
#순위 가져오기
item_rank = item.select_one('span[class^="number no-"]')
if item_rank:
list_rank.append(item_rank.text.strip() )
else:
list_rank.append('') # 순위 없으면 NA 으로 넣어라 !
# 상품의 상세 URL 가져오기
item_url = item.select_one('a.search-product-link')
if item_url:
list_url.append("https://www.coupang.com"+ item_url['href'])
else:
list_url.append('') # 순위 없으면 NA 으로 넣어라 !
print(len(list_name))
print(len(list_price))
print(len(list_review))
print(len(list_star))
print(len(list_ad))
print(len(list_rank))
print(len(list_url))
# 판다스 데이터 프레임 만들기
df = pd.DataFrame( { '상품명' : list_name,
'가격' : list_price,
'리뷰수' : list_review,
'별점' : list_star,
'광고여부' : list_ad,
'순위' : list_rank,
'상세url' : list_url} )
# df 데이터프레임의 결과를 csv 파일로 내립니다.
df.to_csv("c:\\data\\cuppang_shopping.csv", encoding="utf8", index=False)
print('성공적으로 c:\\data\\cuppang_shopping.csv 가 저장되었습니다')
get_coupang_data('그릭 요거트', 1)
● 판다스 데이터 프레임 만들고 출력하기
import requests # 크롬 로봇 안쓰고 웹에 접근하는 모듈
from bs4 import BeautifulSoup
import pandas as pd
def get_coupang_data(keyword, pages):
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36",
"Accept-Language": "ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7",
"Referer": "https://www.coupang.com/"
}
list_name = []
list_price = []
list_review = []
list_star = []
list_ad = []
for page in range( 1, pages+1):
search_url = f"https://www.coupang.com/np/search?q={keyword}&channel=user&page={page}"
response = requests.get(search_url, headers=headers)
#print(response) # <Response [200]> 이렇게 나오면 정상적으로 접근이 된것임
if response.status_code == 200: # 사이트 접속이 정상이면
soup = BeautifulSoup( response.text, 'html.parser')
goods_list = soup.select('ul.search-product-list > li')
#print(goods_list)
for item in goods_list:
#상품명 가져오기
item_name = item.select_one('div.name')
if item_name:
list_name.append( item_name.text.strip() )
else:
list_name.append('')
#상품가격 가져오기
item_price = item.select_one('strong.price-value')
if item_price:
list_price.append( item_price.text.strip() )
else:
list_price.append('')
#리뷰수 가져오기
descriptions_inner=item.select_one('div.descriptions-inner') # 상품의 상세정보
if descriptions_inner and descriptions_inner.select_one('div.other-info'): # 상세정보도 있고 기타 정보도 있으면
item_review = descriptions_inner.select_one('span.rating-total-count')
if item_review:
list_review.append(item_review.text.strip('()'))
else:
list_review.append('0') # 리뷰수가 없으면 0으로 넣어라
else:
list_review.append('0') # 상품의 기타정보가 없으면 0으로 넣어라
#별점 가져오기
descriptions_inner=item.select_one('div.descriptions-inner')
if descriptions_inner and descriptions_inner.select_one('div.other-info'):
item_star = descriptions_inner.select_one('em.rating')
if item_star:
list_star.append(item_star.text.strip() )
else:
list_star.append('0') # 별점이 없으면 0으로 넣어라
else:
list_star.append('0') # 상품의 기타정보가 없으면 0으로 넣어라
# 광고 상품 여부 가져오기
descriptions_inner=item.select_one('div.descriptions-inner')
if descriptions_inner and descriptions_inner.select_one('div.other-info'):
item_ad = descriptions_inner.select_one('span.ad-badge-text')
if item_ad:
list_ad.append('O' )
else:
list_ad.append('X') # 광고가 없으면 x으로 넣어라
else:
list_ad.append('X') # 상품의 기타정보가 없으면 x으로 넣어라
# print(len(list_name)) #49
# print(len(list_price)) #49
# print(len(list_review)) #49
# print(len(list_star)) #49
# print(len(list_ad)) #49
# 판다스 데이터 프레임 만들기
df = pd.DataFrame( { '상품명' : list_name,
'가격' : list_price,
'리뷰수' : list_review,
'별점' : list_star,
'광고여부' : list_ad } )
# return df #프레임 출력
# df 데이터프레임의 결과를 csv 파일로 내립니다.
df.to_csv("c:\\data\\cuppang_shopping.csv", encoding="utf8", index=False)
print('성공적으로 c:\\data\\cuppang_shopping.csv 가 저장되었습니다')
get_coupang_data('그릭 요거트', 2)
문제1. 쿠팡 그릭 요거트 데이터를 조회하는데 리뷰수가 높은 순서데로 모든 컬럼을 출력하시오 !
import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals() ) q = """ select * from cp_greek order by 리뷰수 desc; """ pysqldf(q)
문제2. 위의 결과를 다시 출력하는데 상품명에 '1개'포함된 상품명만출력하시오.
import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals() ) q = """ select * from cp_greek where 상품명 like '%1개%' order by 리뷰수 desc; """ pysqldf(q)
문제3. 위의 결과에서 상품명에 1개와 450g 을 포함하는 것만 출력하시오.
import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek from pandasql import sqldf pysqldf = lambda q : sqldf(q, globals() ) q = """ select * from cp_greek where 상품명 like '%1개%' and 상품명 like '%450g%' order by 리뷰수 desc; """ pysqldf(q)
문제 4. 가격 컬럼의 유형을 숫자로 변환하시오 !
cp_greek['가격'] = cp_greek['가격'].str.replace(r'[^\d]', '', regex=True).astype('int64') cp_greek.info()
문제5. 전체 모든 테이블의 데이터를 가지고 결과를 출력하는데 별점, 별점별 평균가격을 출력하는데 평균가격이 15000원 이상인것만 출력하시오 !
from pandasql import sqldf import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek['가격'] = cp_greek['가격'].str.replace(r'[^\d]', '', regex=True).astype('int64') pysqldf = lambda q : sqldf(q, globals() ) q = """ select 별점, round(avg(가격)) "평균가격" from cp_greek group by 별점 having round(avg(가격)) >= 15000""" pysqldf(q)
문제 6. cp_greek 테이블에서 가격이 가장 비싼 상품의 상품명, 가격, 리뷰수, 순위를 출력하시오 !
from pandasql import sqldf import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek['가격'] = cp_greek['가격'].str.replace(r'[^\d]', '', regex=True).astype('int64') pysqldf = lambda q : sqldf(q, globals() ) q = """ select 상품명, 가격, 리뷰수, 순위 from cp_greek where 가격 = ( select max(가격) from cp_greek ); """ pysqldf(q)
문제7. 상품명, 가격, 가격에대한 순위를 출력하시오.
from pandasql import sqldf import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek['가격'] = cp_greek['가격'].str.replace(r'[^\d]', '', regex=True).astype('int64') pysqldf = lambda q : sqldf(q, globals() ) q = """ select 상품명, 가격, rank() over (order by 가격 desc) 순위2 from cp_greek; """ pysqldf(q)
문제 8. 별점, 별점별 평균가격을 출력하는데 맨아래에 전체 평균가격이 출력이 되게하시오
from pandasql import sqldf import pandas as pd cp_greek = pd.read_csv("c:\\data\\cuppang_shopping.csv") cp_greek['가격'] = cp_greek['가격'].str.replace(r'[^\d]', '', regex=True).astype('int64') pysqldf = lambda q : sqldf(q, globals()) q = """ SELECT 별점, ROUND(AVG(가격)) AS 평균가격 FROM cp_greek GROUP BY 별점 UNION ALL SELECT 'Total' AS 별점, ROUND(AVG(가격)) AS 평균가격 FROM cp_greek """ result = pysqldf(q) print(result)
'빅데이터 분석(with 아이티윌) > python' 카테고리의 다른 글
[빅데이터분석] Python_40. 파이썬 이미지 스크롤링 2 (Bing ) (0) | 2024.08.26 |
---|---|
[빅데이터분석] Python_38. 파이썬 웹스크롤링10(유튜브) (4) | 2024.08.23 |
[빅데이터분석] Python_36. 파이썬 웹스크롤링8 (네이버 쇼핑) (0) | 2024.08.20 |
[빅데이터분석] Python_35. 파이썬 웹 스크롤링 7 (네이버 블로그) & 시각화(워드클라우드) (0) | 2024.08.20 |
[빅데이터분석] Python_34. 파이썬 웹 스크롤링 6 (조선 일보) & Selenium (0) | 2024.08.19 |