예제로 2012년 부터 지금까지의 "자전거"라는 단어의 추이를 파학해 본다.
구글 트렌드 데이터 가지고 오기
가. 모듈 출처 - 치팅 모듈이라, 구글의 백그라운드 방식이 변경되면 동작을 안한다고 함
In [2]:
!git clone https://github.com/dreyco676/pytrends
나. 모듈을 로딩하고, 예제 질의 결과 가지고 오기 ('자전거')
In [3]:
from pytrends.pyGTrends import pyGTrends
# 구글 계정 정보 입력
google_username = "<username>"
google_password = "<password"
# 구글 트렌드 연결
connector = pyGTrends(google_username, google_password)
# 결과를 가져오기
connector.request_report('자전거')
out = connector.get_data().decode('utf-8')
구글 트렌드 결과 CSV 데이터를 요소별로 분리하기
In [4]:
import pandas as pd
from datetime import datetime
from io import StringIO
def parser_google_trends_csv(s):
""" 멀티 구조인 csv를 요소별 dataframe으로 분리 """
t = [ w.strip() for w in s.split('\n\n\n') ]
elements = {}
elements['timeline'] = pd.read_csv(StringIO(t[0]),header=3)
elements['timeline'].Week = elements['timeline']. \
Week.apply(lambda x: datetime.strptime(x.split()[0],'%Y-%m-%d'))
elements['regin'] = pd.read_csv(StringIO(t[1]),header=1)
elements['city'] = pd.read_csv(StringIO(t[2]),header=1)
elements['word'] = pd.read_csv(StringIO(t[3]),skiprows=1,names=['word','weight'])
return elements
e = parser_google_trends_csv(out)
구글 트렌드의 시계열 자료를 그려보기
In [7]:
# 자전거에 대한 2012년 이후 트렌드 확인
e['timeline'].plot(x='Week',y='자전거',figsize=(12,3),grid=True\
,xlim=(datetime(2012,1,1),datetime.now()))
title('구글 트렌드 - 자전거')
수많은 자전거 족들은 겨울에 뭘할까?
C:\Python34\python.exe C:/Users/lsj06/PycharmProjects/untitled4/pip.py
답글삭제File "C:/Users/lsj06/PycharmProjects/untitled4/pip.py", line 1
!git clone https://github.com/dreyco676/pytrends
^
SyntaxError: invalid syntax
Process finished with exit code 1
이렇게 오류뜨면서 안되는데 말씀하신대로 백그라운드 방식이 변경되서 안되는걸까요? 좀 가르쳐주세요 ㅠㅠㅠ
구문 에러 입니다.
답글삭제아마도, pycharm을 쓰시는 듯 한데, 본문은 jupyter notebook을 기반으로 작성 되었습니다.
jupyter notebook에서는 note + programming을 지원합니다. (present of god)
!command 는 console command를 수행하는 구문 입니다.
본문 설명은 이제 "https://github.com/GeneralMills/pytrends" 페이지를 참조 바랍니다.
간략히 요약하면,
1. python 패키지 클라이언트 도구인 pip로 모듈을 설치합니다.
pip install pytrends
2. google trends에서 결과를 가지고 와서 plotting 합니다.
from pytrends.request import TrendReq
pytrend = TrendReq(google_username, google_password, custom_useragent='My Pytrends Script')
pytrend.build_payload(kw_list=['자전거'])
pytrend.interest_over_time().plot(grid=True)
모듈이 좀 더 사용하기 심플하게 바뀌었네요. ^^
작성자가 댓글을 삭제했습니다.
삭제