Skip to content

Python package to get the full time series for any search query with daily frequency.

License

Notifications You must be signed in to change notification settings

le0x99/DailyTrends

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨ DailyTrends 5.0 (final/stable) ✨

Downloads

🚨 ALL BUGS FIXED🚨 - Update to version 5.0

  • Fully operational after new versions of pandas broke the restructuring pipe.
  • Google API change, so the code was adjusted (again).
  • The timerange can now be specified approximately.
  • The region (geo) can now be specified.

Purpose

This lightweight API solves the problem of getting only monthly-based data for large time series when collecting Google Trends data. No login required.

Installation

Install via PyPi:

$ pip install DailyTrends

Usage

>>> from DailyTrends.collect import collect_data

Queries are submitted in a gentle manner, which can be slow (but safe) for very large series.

>>> data = collect_data("AMD stock",start="2004-01-01", end="2019-07-06",
                    geo="", save=False, verbose=False)  
>>> data.info()

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 5666 entries, 2004-01-01 to 2019-07-06
Freq: D
Data columns (total 1 columns):
AMD stock: (Worldwide)    5666 non-null float64
dtypes: float64(1)
memory usage: 88.5 KB
  • The returned dataframe is already indexed and ready for storage/analysis.
  • The end of the series defaults to "TODAY".
  • The start of the series defaults to "2004-01-01".
  • The geo parameter defaults to "", which yields global results.
# Plotting some rolling means of the daily data
>>> ax = data.rolling(10).mean().plot();
>>> data.rolling(25).mean().plot(ax=ax);
>>> data.rolling(50).mean().plot(ax=ax)

image.png

Add your own data

# In this case the historic prices of the stock
>>> import pandas as pd
>>> price_data = pd.read_csv("price_data.csv")
>>> merged = pd.merge(price_data, data,
                  left_index=True, right_index=True)
>>> merged[["AMD stock: (Worldwide)", "Open"]].rolling(30).mean().plot()

image.png

Load multiple queries

>>> data = collect_data(["Intel", "AMD"],start="2004-01-01", end="TODAY",
                    geo="DE", save=False, verbose=False)      
                

To-Do

  • Add Tor-Network-based requests

Disclaimer

This API is not supported by Google and is for experimental purposes only.

About

Python package to get the full time series for any search query with daily frequency.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages