Skip to main content

Google2Pandas

Google2Pandas may eventually be a set of tools that will allow for easy querying of various google database products (Analytics, etc.) with the results returned as pandas.DataFrame objects (http://pandas.pydata.org/).

At this point, only queries to Google Analytics and the Multi-Channel Funnels Reporting via the core reporting API are supported.

Nomenclature

Suggested usage:

from google2pandas import *

Quick Setup

Install the latest version via pip:

sudo pip install Google2Pandas

or install the latest development version via:

sudo pip install git+https://github.com/panalysis/Google2Pandas

You will first need to enable the Analytics API, in particular you will need to follow Step 1 here.

Place the client_secrets_v3.json file in your dist-packages/google2pandas/ directory, and you're ready to go! Note that if this package has been installed system-wide (default), you will likely need to adjust the permissions/ownership of client_secrets_v3.json as well as the created analytics.dat token file. In particular, if you wish to create a system-wide token file (by default the class looks in /path/to/your/dist-packages/google2pandas/analytics.dat) you will likely need to instantiate the GoogleAnalyticsQuery class specifying a local location for the token file, and manually relocate it later.

Alternatively, store your credentials anywhere you like and simply pass a pointer to client_secrets_v3.json and analytics.dat when instantiating the class.

Quick Demo

from google2pandas import *

query = {\
    'ids'           : <valid_ids>,
    'metrics'       : 'pageviews',
    'dimensions'    : ['date', 'pagePath', 'browser'],
    'filters'       : ['pagePath=~iPhone', 'and', 'browser=~Firefox'],
    'start_date'    : '8daysAgo',
    'max_results'   : 10}

conn = GoogleAnalyticsQuery(
        token_file_name='my_analytics.dat',
	secrets='my_client_secrets_v3.json')
df, metadata = conn.execute_query(**query)

New and Improved (more of a work in progess really)

Support has now been added for the GA Reporting API V4 as suggested in issue #21 via the GoogleAnalyticsQueryV4 class. The support is rather rough for now, the primary reason being that since I'm not working with GA much at all these days I do not have the time to fully learn the features present in the new API.

For now, what this means is that there is zero parsing of the queries provided, it's down to the user to structure them correctly. As well, no guarantees are provided as to the ability to of the resp2frame method to convert the JSON object from GA to a pandas.DataFrame object in a manner that is generically robust. The as_dict keyword argument causes the restructuring step to be skipped; if you find room for improvements please do not hesitate to make a PR with your suggestions!

To use this module, one needs to follow the new setup process to enable acces. No more analytics.dat file, instead one needs to simply add the generated email address to the GA view you wish to access.

I also suggest naming the client_secrets file to something that indicates it is for the V4 API, as it is quite a different thing than the V3 version (default behaviour is to look for client_secrets_v4.json in dist-packages/google2pandas/).

Quick Demo

from google2pandas import *

query = {
    'reportRequests': [{
        'viewId' : <valid_ids>,

        'dateRanges': [{
            'startDate' : '8daysAgo',
            'endDate'   : 'today'}],

        'dimensions' : [
            {'name' : 'ga:date'}, 
            {'name' : 'ga:pagePath'},
            {'name' : 'ga:browser'}],

        'metrics'   : [
            {'expression' : 'ga:pageviews'}],

        'dimensionFilterClauses' : [{
            'operator' : 'AND',
            'filters'  : [
                {'dimensionName' : 'ga:browser',
                 'operator' : 'REGEXP',
                 'expressions' : ['Firefox']},

                {'dimensionName' : 'ga:pagePath',
                 'operator' : 'REGEXP',
                 'expressions' : ['iPhone']}]
        }]
    }]
}

# Assume we have placed our client_secrets_v4.json file in the current
# working directory.

conn = GoogleAnalyticsQueryV4(secrets='my_client_secrets_v4.json')
df = conn.execute_query(query)

Release files for Google2Pandas 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Google2Pandas 0.2.1
File Size Uploaded
Google2Pandas-0.2.1.tar.gz 12.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Google2Pandas 0.2.1
File Interpreter ABI Platform
Google2Pandas-0.2.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 25.9 kB

Release files / Google2Pandas-0.2.1.tar.gz

Download URL Google2Pandas-0.2.1.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d354e0991ff3ec1ab7aeafa5fdaba6924d31338e78e7149daf28fee40a189f58
BLAKE2b-256 checksum
How to use checksums
0f364ddad017d4b17c495ed8bfabdfebb8b9aa22b3ac13338be8054c1e085ac4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release files / Google2Pandas-0.2.1-py2.py3-none-any.whl

Download URL Google2Pandas-0.2.1-py2.py3-none-any.whl
Size 13.7 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
e632d91ef2ff911a78c3a76320ba46f85ca95014e7434c96a5748a4ec5ae9bde
BLAKE2b-256 checksum
How to use checksums
443245573a9762beb090f758868bb992518b911090ab398571e08f9855f04b1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2

2 release files

0.1.001

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page