From September 26, 2017 to November 31, 2017.
Python versions from 2.6 to 3.6
-- https://bigquery.cloud.google.com/dataset/the-psf:pypi | |
SELECT concat( | |
date(timestamp), '_', REGEXP_EXTRACT(details.python, r'^([2-3]).[0-9].') | |
) as date_python, count(details.python) as downloads | |
FROM (TABLE_DATE_RANGE([the-psf:pypi.downloads], | |
TIMESTAMP('2016-06-26'), | |
TIMESTAMP('2016-08-31'))) | |
group by date_python |
-- https://bigquery.cloud.google.com/dataset/the-psf:pypi | |
-- https://bigquery.cloud.google.com/table/the-psf:pypi.downloads20160903 | |
SELECT concat( | |
date(timestamp), '_', REGEXP_EXTRACT(details.python, r'^([2-3].[0-9]).') | |
) as date_python, count(details.python) as downloads | |
FROM (TABLE_DATE_RANGE([the-psf:pypi.downloads], | |
TIMESTAMP('2017-09-26'), | |
TIMESTAMP('2017-11-31'))) | |
group by date_python |
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
# To plot chart from csv generated by bigquery | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
ts = pd.read_csv('download_python_version_by_day.csv') | |
dp = ts['date_python'] | |
dp = dp.str.extract('(?P<date>.*?)_(?P<python>.*)', expand=True) | |
ts = ts.join(dp) | |
ts['date'] = pd.to_datetime(ts['date']) | |
df = ts.pivot(index='date', columns='python', values='downloads') | |
df[['2.6', '2.7', '3.1', '3.2', '3.3', '3.4', '3.5', '3.6']][1:].plot() | |
plt.draw() | |
plt.savefig('python_downloads_by_version_by_day.png') | |
plt.show() |
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
import pandas as pd | |
import matplotlib.pyplot as plt | |
ts = pd.read_csv( | |
'download_python_major_version_by_day.csv', parse_dates=True, | |
) | |
ts['date'] = pd.to_datetime(ts['date']) | |
df = ts.pivot(index='date', columns='python', values='downloads') | |
ax = df[[2, 3]].plot(logy=True, figsize=(12, 9)) | |
ax.set_ylabel('log(downloads)') | |
ax.set_title('Python packages downloads') | |
plt.show() |