{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Exploring data using Pandas\n", "\n", "\n", "\n", "So far we explored Python and a few native libraries. Now we will play a little to simplify our life with tools to conduct some **data analysis**.\n", "\n", "**Pandas** is the most popular library (so far) to import and handle data in Python.\n", "\n", "### Let's import some data from a CSV file\n", "\n", "**When downloading my ipynb, remember to also get the `commits_pr.csv` file**" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [], "source": [ "import pandas\n", "cpr = pandas.read_csv(\"commits_pr.csv\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It became this easy to read a CSV file!!!\n", "And more... Look at what my `cpr` is:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pandas.core.frame.DataFrame" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(cpr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Yes! A DataFrame. And it reads really nice, look:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>42087</th>\n", " <td>user36933</td>\n", " <td>node</td>\n", " <td>javascript</td>\n", " <td>14285</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>42088</th>\n", " <td>user36934</td>\n", " <td>react</td>\n", " <td>javascript</td>\n", " <td>8762</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>42089</th>\n", " <td>user36934</td>\n", " <td>rails</td>\n", " <td>ruby</td>\n", " <td>27508</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>42090</th>\n", " <td>user36935</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>15047</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>42091</th>\n", " <td>user36936</td>\n", " <td>node</td>\n", " <td>javascript</td>\n", " <td>9508</td>\n", " <td>2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "42087 user36933 node javascript 14285 1\n", "42088 user36934 react javascript 8762 2\n", "42089 user36934 rails ruby 27508 1\n", "42090 user36935 cocos2d-x C++ 15047 1\n", "42091 user36936 node javascript 9508 2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.tail()\n", "### We can use head() and tail() functions to see a bit less" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before moving forward... Explaining a little about this dataset.\n", "\n", "This dataset represents a series of Pull Requests made to a subset of projects hosted by GitHub. We worked on this data to capture a specific type of contributor, which we called *casual contributor*. These contributors are known by having a single pull request accepted in a project and not coming back (i.e., they have no long-term commitment to the project).\n", "\n", "In this specific dataset, you will find the following columns:\n", "\n", "* `user`: represent a user in GitHub (anonymized here)\n", "* `project_name`: the name of GitHub project in which the pull request was accepted\n", "* `prog_lang`: programming language of the project\n", "* `pull_req_num`: unique identifier of the pull request\n", "* `num_commits`: number of commits sent within that specific pull request\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Some information about the dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dimensions/shape of the dataset (lines vs. columns)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(42092, 5)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What about the column names?" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['user', 'project_name', 'prog_lang', 'pull_req_number', 'num_commits'], dtype='object')" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the datatype per column?" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "user object\n", "project_name object\n", "prog_lang object\n", "pull_req_number int64\n", "num_commits int64\n", "dtype: object" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some more information: `info()` method prints information including the index dtype and column dtypes, non-null values and memory usage." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "<class 'pandas.core.frame.DataFrame'>\n", "RangeIndex: 42092 entries, 0 to 42091\n", "Data columns (total 5 columns):\n", "user 42092 non-null object\n", "project_name 42092 non-null object\n", "prog_lang 42092 non-null object\n", "pull_req_number 42092 non-null int64\n", "num_commits 42092 non-null int64\n", "dtypes: int64(2), object(3)\n", "memory usage: 1.6+ MB\n" ] } ], "source": [ "cpr.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is the type of a specific column???" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "pandas.core.series.Series" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(cpr[\"num_commits\"])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A *serie* is a list, with one dimension, indexed. Each column of a dataframe is a series" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before moving ahead, we can use the types to filter some columns. \n", "\n", "Let's say we want only the columns that store `int`:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['pull_req_number', 'num_commits'], dtype='object')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "int_columns = cpr.dtypes[cpr.dtypes == \"int64\"].index\n", "int_columns" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now... I just want to see these columns... **BOOM**" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>122</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>3325</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>2128</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>2663</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>7901</td>\n", " <td>1</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " pull_req_number num_commits\n", "0 122 1\n", "1 3325 1\n", "2 2128 2\n", "3 2663 1\n", "4 7901 1" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr[int_columns].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What about statistical information about my DataFrame?\n", "\n", "`describe()` method provides a summary of numeric values in your dataset: mean, standard deviation, minimum, maximum, 1st quartile, 2nd quartile (median), 3rd quartile of the columns with numeric values. It also counts the number of variables in the dataset (are there missing variables?)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>count</th>\n", " <td>42092.000000</td>\n", " <td>42092.000000</td>\n", " </tr>\n", " <tr>\n", " <th>mean</th>\n", " <td>4452.145681</td>\n", " <td>3.824242</td>\n", " </tr>\n", " <tr>\n", " <th>std</th>\n", " <td>6152.304478</td>\n", " <td>20.760123</td>\n", " </tr>\n", " <tr>\n", " <th>min</th>\n", " <td>1.000000</td>\n", " <td>1.000000</td>\n", " </tr>\n", " <tr>\n", " <th>25%</th>\n", " <td>628.000000</td>\n", " <td>1.000000</td>\n", " </tr>\n", " <tr>\n", " <th>50%</th>\n", " <td>2007.000000</td>\n", " <td>1.000000</td>\n", " </tr>\n", " <tr>\n", " <th>75%</th>\n", " <td>5534.250000</td>\n", " <td>2.000000</td>\n", " </tr>\n", " <tr>\n", " <th>max</th>\n", " <td>38174.000000</td>\n", " <td>385.000000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " pull_req_number num_commits\n", "count 42092.000000 42092.000000\n", "mean 4452.145681 3.824242\n", "std 6152.304478 20.760123\n", "min 1.000000 1.000000\n", "25% 628.000000 1.000000\n", "50% 2007.000000 1.000000\n", "75% 5534.250000 2.000000\n", "max 38174.000000 385.000000" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can do it for a Series..." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "count 42092.000000\n", "mean 3.824242\n", "std 20.760123\n", "min 1.000000\n", "25% 1.000000\n", "50% 1.000000\n", "75% 2.000000\n", "max 385.000000\n", "Name: num_commits, dtype: float64" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#cpr[\"num_commits\"].describe()\n", "cpr.num_commits.describe()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 42092\n", "unique 17\n", "top ruby\n", "freq 8147\n", "Name: prog_lang, dtype: object" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#LOOK at this with a non-numeric column\n", "cpr.prog_lang.describe() #either way work." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we can get specific information per column" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.num_commits.median()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3.8242421362729258" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.num_commits.mean()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "20.76012335707578" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.num_commits.std()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### --------------####\n", "### Playing with the data: sorting\n", "\n", "We can sort our data easily using pandas.\n", "\n", "In this example, sorting by Programming Language" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>38987</th>\n", " <td>user34165</td>\n", " <td>three.js</td>\n", " <td>javascript</td>\n", " <td>7832</td>\n", " <td>385</td>\n", " </tr>\n", " <tr>\n", " <th>705</th>\n", " <td>user640</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>6866</td>\n", " <td>364</td>\n", " </tr>\n", " <tr>\n", " <th>7335</th>\n", " <td>user6426</td>\n", " <td>redis</td>\n", " <td>C</td>\n", " <td>3506</td>\n", " <td>315</td>\n", " </tr>\n", " <tr>\n", " <th>19587</th>\n", " <td>user17126</td>\n", " <td>jenkins</td>\n", " <td>java</td>\n", " <td>2718</td>\n", " <td>307</td>\n", " </tr>\n", " <tr>\n", " <th>35826</th>\n", " <td>user31347</td>\n", " <td>redis</td>\n", " <td>C</td>\n", " <td>3230</td>\n", " <td>290</td>\n", " </tr>\n", " <tr>\n", " <th>13300</th>\n", " <td>user11672</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>16576</td>\n", " <td>281</td>\n", " </tr>\n", " <tr>\n", " <th>3601</th>\n", " <td>user3214</td>\n", " <td>three.js</td>\n", " <td>javascript</td>\n", " <td>7808</td>\n", " <td>277</td>\n", " </tr>\n", " <tr>\n", " <th>13873</th>\n", " <td>user12167</td>\n", " <td>spring-framework</td>\n", " <td>java</td>\n", " <td>642</td>\n", " <td>273</td>\n", " </tr>\n", " <tr>\n", " <th>26360</th>\n", " <td>user23077</td>\n", " <td>Faker</td>\n", " <td>php</td>\n", " <td>660</td>\n", " <td>259</td>\n", " </tr>\n", " <tr>\n", " <th>18632</th>\n", " <td>user16293</td>\n", " <td>libgdx</td>\n", " <td>java</td>\n", " <td>814</td>\n", " <td>258</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "38987 user34165 three.js javascript 7832 385\n", "705 user640 cocos2d-x C++ 6866 364\n", "7335 user6426 redis C 3506 315\n", "19587 user17126 jenkins java 2718 307\n", "35826 user31347 redis C 3230 290\n", "13300 user11672 cocos2d-x C++ 16576 281\n", "3601 user3214 three.js javascript 7808 277\n", "13873 user12167 spring-framework java 642 273\n", "26360 user23077 Faker php 660 259\n", "18632 user16293 libgdx java 814 258" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.sort_values(\"num_commits\", ascending=False).head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can sort using *many columns*, by using a list (sort will happen from the first item to the last)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>14351</th>\n", " <td>user12556</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>678</td>\n", " <td>11</td>\n", " </tr>\n", " <tr>\n", " <th>40943</th>\n", " <td>user35906</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1609</td>\n", " <td>10</td>\n", " </tr>\n", " <tr>\n", " <th>35890</th>\n", " <td>user31404</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>565</td>\n", " <td>6</td>\n", " </tr>\n", " <tr>\n", " <th>1800</th>\n", " <td>user1614</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1179</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>20245</th>\n", " <td>user17684</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1559</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>29167</th>\n", " <td>user25562</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>30</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>4780</th>\n", " <td>user4214</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>44</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>5142</th>\n", " <td>user4533</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>185</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>7862</th>\n", " <td>user6897</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1515</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>32077</th>\n", " <td>user28045</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>428</td>\n", " <td>2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "14351 user12556 winjs typescript 678 11\n", "40943 user35906 winjs typescript 1609 10\n", "35890 user31404 winjs typescript 565 6\n", "1800 user1614 winjs typescript 1179 3\n", "20245 user17684 winjs typescript 1559 3\n", "29167 user25562 winjs typescript 30 3\n", "4780 user4214 winjs typescript 44 2\n", "5142 user4533 winjs typescript 185 2\n", "7862 user6897 winjs typescript 1515 2\n", "32077 user28045 winjs typescript 428 2" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.sort_values([\"prog_lang\", \"project_name\", \"num_commits\"], ascending=False).head(10)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>user1</td>\n", " <td>php-src</td>\n", " <td>C</td>\n", " <td>122</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>user2</td>\n", " <td>activeadmin</td>\n", " <td>ruby</td>\n", " <td>3325</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>user3</td>\n", " <td>YouCompleteMe</td>\n", " <td>python</td>\n", " <td>2128</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>user4</td>\n", " <td>requests</td>\n", " <td>python</td>\n", " <td>2663</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>user5</td>\n", " <td>ipython</td>\n", " <td>python</td>\n", " <td>7901</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>user6</td>\n", " <td>haste-compiler</td>\n", " <td>haskell</td>\n", " <td>407</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>6</th>\n", " <td>user7</td>\n", " <td>select2</td>\n", " <td>javascript</td>\n", " <td>1987</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>7</th>\n", " <td>user8</td>\n", " <td>django</td>\n", " <td>python</td>\n", " <td>8608</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>8</th>\n", " <td>user9</td>\n", " <td>folly</td>\n", " <td>C++</td>\n", " <td>206</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>9</th>\n", " <td>user10</td>\n", " <td>django</td>\n", " <td>python</td>\n", " <td>4745</td>\n", " <td>2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "0 user1 php-src C 122 1\n", "1 user2 activeadmin ruby 3325 1\n", "2 user3 YouCompleteMe python 2128 2\n", "3 user4 requests python 2663 1\n", "4 user5 ipython python 7901 1\n", "5 user6 haste-compiler haskell 407 1\n", "6 user7 select2 javascript 1987 1\n", "7 user8 django python 8608 3\n", "8 user9 folly C++ 206 1\n", "9 user10 django python 4745 2" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want to keep the sorted version, you can use the parameter `inplace`:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "cpr.sort_values([\"prog_lang\", \"project_name\", \"num_commits\"], ascending=False, inplace=True)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>14351</th>\n", " <td>user12556</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>678</td>\n", " <td>11</td>\n", " </tr>\n", " <tr>\n", " <th>40943</th>\n", " <td>user35906</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1609</td>\n", " <td>10</td>\n", " </tr>\n", " <tr>\n", " <th>35890</th>\n", " <td>user31404</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>565</td>\n", " <td>6</td>\n", " </tr>\n", " <tr>\n", " <th>1800</th>\n", " <td>user1614</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1179</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>20245</th>\n", " <td>user17684</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1559</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>29167</th>\n", " <td>user25562</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>30</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>4780</th>\n", " <td>user4214</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>44</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>5142</th>\n", " <td>user4533</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>185</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>7862</th>\n", " <td>user6897</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1515</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>32077</th>\n", " <td>user28045</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>428</td>\n", " <td>2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "14351 user12556 winjs typescript 678 11\n", "40943 user35906 winjs typescript 1609 10\n", "35890 user31404 winjs typescript 565 6\n", "1800 user1614 winjs typescript 1179 3\n", "20245 user17684 winjs typescript 1559 3\n", "29167 user25562 winjs typescript 30 3\n", "4780 user4214 winjs typescript 44 2\n", "5142 user4533 winjs typescript 185 2\n", "7862 user6897 winjs typescript 1515 2\n", "32077 user28045 winjs typescript 428 2" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.head(10)\n", "#cpr = pandas.read_csv(\"commits_pr.csv\") #--> to return to the original order" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Counting the occurences of variables\n", "\n", "So, to count the occurrences in a column we have to select the column first, and use the method `value_counts()`" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "ruby 8147\n", "javascript 7052\n", "python 4092\n", "php 4069\n", "C++ 2785\n", "java 2596\n", "C 2196\n", "go 2103\n", "coffeescript 2066\n", "scala 1823\n", "objective-c 1801\n", "haskell 950\n", "clojure 882\n", "perl 663\n", "erlang 500\n", "typescript 343\n", "Perl 24\n", "Name: prog_lang, dtype: int64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.prog_lang.value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But... I just want to know what are the languages out there. Is there a way?\n", "\n", "*Always*" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array(['typescript', 'scala', 'ruby', 'python', 'php', 'perl',\n", " 'objective-c', 'javascript', 'java', 'haskell', 'go', 'erlang',\n", " 'coffeescript', 'clojure', 'Perl', 'C++', 'C'], dtype=object)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr[\"prog_lang\"].unique()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## OK! Let's do something else... Like, selecting columns and filtering data\n", "\n", "Let's say that I just want to look at the columns programming language, project name and number of commits. \n", "\n", "I can select them and create a new DF" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>prog_lang</th>\n", " <th>project_name</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>14351</th>\n", " <td>typescript</td>\n", " <td>winjs</td>\n", " <td>11</td>\n", " </tr>\n", " <tr>\n", " <th>40943</th>\n", " <td>typescript</td>\n", " <td>winjs</td>\n", " <td>10</td>\n", " </tr>\n", " <tr>\n", " <th>35890</th>\n", " <td>typescript</td>\n", " <td>winjs</td>\n", " <td>6</td>\n", " </tr>\n", " <tr>\n", " <th>1800</th>\n", " <td>typescript</td>\n", " <td>winjs</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>20245</th>\n", " <td>typescript</td>\n", " <td>winjs</td>\n", " <td>3</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " prog_lang project_name num_commits\n", "14351 typescript winjs 11\n", "40943 typescript winjs 10\n", "35890 typescript winjs 6\n", "1800 typescript winjs 3\n", "20245 typescript winjs 3" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "selected_columns = [\"prog_lang\", \"project_name\", \"num_commits\"]\n", "my_subset = cpr[selected_columns]\n", "my_subset.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if now I want to filter those projects written in `C` language?" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>count</th>\n", " <td>389.000000</td>\n", " <td>389.0</td>\n", " </tr>\n", " <tr>\n", " <th>mean</th>\n", " <td>3815.380463</td>\n", " <td>2.0</td>\n", " </tr>\n", " <tr>\n", " <th>std</th>\n", " <td>3264.957089</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>min</th>\n", " <td>3.000000</td>\n", " <td>2.0</td>\n", " </tr>\n", " <tr>\n", " <th>25%</th>\n", " <td>1061.000000</td>\n", " <td>2.0</td>\n", " </tr>\n", " <tr>\n", " <th>50%</th>\n", " <td>2860.000000</td>\n", " <td>2.0</td>\n", " </tr>\n", " <tr>\n", " <th>75%</th>\n", " <td>5831.000000</td>\n", " <td>2.0</td>\n", " </tr>\n", " <tr>\n", " <th>max</th>\n", " <td>12724.000000</td>\n", " <td>2.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " pull_req_number num_commits\n", "count 389.000000 389.0\n", "mean 3815.380463 2.0\n", "std 3264.957089 0.0\n", "min 3.000000 2.0\n", "25% 1061.000000 2.0\n", "50% 2860.000000 2.0\n", "75% 5831.000000 2.0\n", "max 12724.000000 2.0" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "only_C = cpr[(cpr[\"prog_lang\"]=='C') & (cpr[\"num_commits\"]==2)]\n", "only_C.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can filter whatever we want:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "single_commit = cpr[cpr[\"num_commits\"] == 1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can create filters in variables, and use whenever we want, as well" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "one_commit = cpr[\"num_commits\"]==1\n", "language_C = cpr[\"prog_lang\"]==\"C\"\n", "multi_commit = cpr[\"num_commits\"]>1" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>1625</th>\n", " <td>user1464</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>284</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>1696</th>\n", " <td>user1526</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>224</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2259</th>\n", " <td>user2025</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>398</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2522</th>\n", " <td>user2268</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>387</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>3210</th>\n", " <td>user2872</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>311</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>3946</th>\n", " <td>user3515</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>366</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>4774</th>\n", " <td>user4209</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>291</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>5802</th>\n", " <td>user5103</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>3</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>7326</th>\n", " <td>user6419</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>58</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>7811</th>\n", " <td>user6850</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>217</td>\n", " <td>1</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "1625 user1464 twemproxy C 284 1\n", "1696 user1526 twemproxy C 224 1\n", "2259 user2025 twemproxy C 398 1\n", "2522 user2268 twemproxy C 387 1\n", "3210 user2872 twemproxy C 311 1\n", "3946 user3515 twemproxy C 366 1\n", "4774 user4209 twemproxy C 291 1\n", "5802 user5103 twemproxy C 3 1\n", "7326 user6419 twemproxy C 58 1\n", "7811 user6850 twemproxy C 217 1" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr[one_commit & language_C].head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And... we can use OR (|) and AND(&) to play!" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>1625</th>\n", " <td>user1464</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>284</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>1696</th>\n", " <td>user1526</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>224</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2259</th>\n", " <td>user2025</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>398</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2522</th>\n", " <td>user2268</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>387</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>3210</th>\n", " <td>user2872</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>311</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>3946</th>\n", " <td>user3515</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>366</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>4774</th>\n", " <td>user4209</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>291</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>5802</th>\n", " <td>user5103</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>3</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>7326</th>\n", " <td>user6419</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>58</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>7811</th>\n", " <td>user6850</td>\n", " <td>twemproxy</td>\n", " <td>C</td>\n", " <td>217</td>\n", " <td>1</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits\n", "1625 user1464 twemproxy C 284 1\n", "1696 user1526 twemproxy C 224 1\n", "2259 user2025 twemproxy C 398 1\n", "2522 user2268 twemproxy C 387 1\n", "3210 user2872 twemproxy C 311 1\n", "3946 user3515 twemproxy C 366 1\n", "4774 user4209 twemproxy C 291 1\n", "5802 user5103 twemproxy C 3 1\n", "7326 user6419 twemproxy C 58 1\n", "7811 user6850 twemproxy C 217 1" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr[one_commit & language_C].head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### What if we want the pull requests with more than one commit for the projects written in \"C\" and those with 2 commits for the projects written in \"typescript\"???\n", "\n", "Let's do it!\n" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>4780</th>\n", " <td>user4214</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>44</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>5142</th>\n", " <td>user4533</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>185</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>7862</th>\n", " <td>user6897</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1515</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>32077</th>\n", " <td>user28045</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>428</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>14874</th>\n", " <td>user13017</td>\n", " <td>typescript-node-definitions</td>\n", " <td>typescript</td>\n", " <td>10</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>4628</th>\n", " <td>user4086</td>\n", " <td>tsd</td>\n", " <td>typescript</td>\n", " <td>251</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>6163</th>\n", " <td>user5410</td>\n", " <td>tsd</td>\n", " <td>typescript</td>\n", " <td>99</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>19480</th>\n", " <td>user17042</td>\n", " <td>tsd</td>\n", " <td>typescript</td>\n", " <td>227</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>28014</th>\n", " <td>user24539</td>\n", " <td>tsd</td>\n", " <td>typescript</td>\n", " <td>223</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>2938</th>\n", " <td>user2628</td>\n", " <td>shumway</td>\n", " <td>typescript</td>\n", " <td>1660</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>29652</th>\n", " <td>user25959</td>\n", " <td>shumway</td>\n", " <td>typescript</td>\n", " <td>7</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>35752</th>\n", " <td>user31281</td>\n", " <td>shumway</td>\n", " <td>typescript</td>\n", " <td>2156</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>39930</th>\n", " <td>user35002</td>\n", " <td>shumway</td>\n", " <td>typescript</td>\n", " <td>119</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>12063</th>\n", " <td>user10592</td>\n", " <td>reddcoin</td>\n", " <td>typescript</td>\n", " <td>8</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>24217</th>\n", " <td>user21197</td>\n", " <td>reddcoin</td>\n", " <td>typescript</td>\n", " <td>80</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>18678</th>\n", " <td>user16336</td>\n", " <td>primecoin</td>\n", " <td>typescript</td>\n", " <td>15</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>37326</th>\n", " <td>user32674</td>\n", " <td>primecoin</td>\n", " <td>typescript</td>\n", " <td>4</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>3309</th>\n", " <td>user2954</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>373</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>8441</th>\n", " <td>user7412</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>356</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>12193</th>\n", " <td>user10705</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>3</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>14382</th>\n", " <td>user12584</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>16</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>14478</th>\n", " <td>user12666</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>2</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>34893</th>\n", " <td>user30521</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>124</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>41348</th>\n", " <td>user36268</td>\n", " <td>litecoin</td>\n", " <td>typescript</td>\n", " <td>242</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>18750</th>\n", " <td>user16399</td>\n", " <td>egret-core</td>\n", " <td>typescript</td>\n", " <td>125</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>15621</th>\n", " <td>user13681</td>\n", " <td>doppio</td>\n", " <td>typescript</td>\n", " <td>415</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>29010</th>\n", " <td>user25413</td>\n", " <td>doppio</td>\n", " <td>typescript</td>\n", " <td>417</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>41824</th>\n", " <td>user36687</td>\n", " <td>doppio</td>\n", " <td>typescript</td>\n", " <td>387</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>430</th>\n", " <td>user398</td>\n", " <td>TypeScript</td>\n", " <td>typescript</td>\n", " <td>8394</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>2542</th>\n", " <td>user2286</td>\n", " <td>TypeScript</td>\n", " <td>typescript</td>\n", " <td>13045</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>...</th>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " <td>...</td>\n", " </tr>\n", " <tr>\n", " <th>25269</th>\n", " <td>user22129</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11147</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>26031</th>\n", " <td>user22791</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11144</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>26174</th>\n", " <td>user22918</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>3192</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>26259</th>\n", " <td>user22997</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>12609</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>26272</th>\n", " <td>user23006</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>2455</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>26445</th>\n", " <td>user23156</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11214</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>27626</th>\n", " <td>user24204</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11951</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>27992</th>\n", " <td>user24520</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>2176</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>28734</th>\n", " <td>user25172</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>636</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>29569</th>\n", " <td>user25888</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>10007</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>29871</th>\n", " <td>user26145</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>10802</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>30035</th>\n", " <td>user26276</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>3051</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>30057</th>\n", " <td>user26297</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>12757</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>30508</th>\n", " <td>user26700</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>9927</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>30829</th>\n", " <td>user26967</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>9918</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>32633</th>\n", " <td>user28536</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>1033</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>32940</th>\n", " <td>user28804</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11983</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>33441</th>\n", " <td>user29243</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>1490</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>33795</th>\n", " <td>user29560</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>2354</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>37159</th>\n", " <td>user32521</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>3340</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>39986</th>\n", " <td>user35049</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>2689</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>41069</th>\n", " <td>user36019</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11071</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>41416</th>\n", " <td>user36327</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>11148</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>41484</th>\n", " <td>user36386</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>34</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>41679</th>\n", " <td>user36551</td>\n", " <td>cphalcon</td>\n", " <td>C</td>\n", " <td>3082</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>2465</th>\n", " <td>user2213</td>\n", " <td>ccv</td>\n", " <td>C</td>\n", " <td>83</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>14883</th>\n", " <td>user13025</td>\n", " <td>ccv</td>\n", " <td>C</td>\n", " <td>4</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>21334</th>\n", " <td>user18630</td>\n", " <td>ccv</td>\n", " <td>C</td>\n", " <td>19</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>21728</th>\n", " <td>user18978</td>\n", " <td>ccv</td>\n", " <td>C</td>\n", " <td>132</td>\n", " <td>1</td>\n", " </tr>\n", " <tr>\n", " <th>39827</th>\n", " <td>user34908</td>\n", " <td>ccv</td>\n", " <td>C</td>\n", " <td>150</td>\n", " <td>1</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "<p>1367 rows × 5 columns</p>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number \\\n", "4780 user4214 winjs typescript 44 \n", "5142 user4533 winjs typescript 185 \n", "7862 user6897 winjs typescript 1515 \n", "32077 user28045 winjs typescript 428 \n", "14874 user13017 typescript-node-definitions typescript 10 \n", "4628 user4086 tsd typescript 251 \n", "6163 user5410 tsd typescript 99 \n", "19480 user17042 tsd typescript 227 \n", "28014 user24539 tsd typescript 223 \n", "2938 user2628 shumway typescript 1660 \n", "29652 user25959 shumway typescript 7 \n", "35752 user31281 shumway typescript 2156 \n", "39930 user35002 shumway typescript 119 \n", "12063 user10592 reddcoin typescript 8 \n", "24217 user21197 reddcoin typescript 80 \n", "18678 user16336 primecoin typescript 15 \n", "37326 user32674 primecoin typescript 4 \n", "3309 user2954 litecoin typescript 373 \n", "8441 user7412 litecoin typescript 356 \n", "12193 user10705 litecoin typescript 3 \n", "14382 user12584 litecoin typescript 16 \n", "14478 user12666 litecoin typescript 2 \n", "34893 user30521 litecoin typescript 124 \n", "41348 user36268 litecoin typescript 242 \n", "18750 user16399 egret-core typescript 125 \n", "15621 user13681 doppio typescript 415 \n", "29010 user25413 doppio typescript 417 \n", "41824 user36687 doppio typescript 387 \n", "430 user398 TypeScript typescript 8394 \n", "2542 user2286 TypeScript typescript 13045 \n", "... ... ... ... ... \n", "25269 user22129 cphalcon C 11147 \n", "26031 user22791 cphalcon C 11144 \n", "26174 user22918 cphalcon C 3192 \n", "26259 user22997 cphalcon C 12609 \n", "26272 user23006 cphalcon C 2455 \n", "26445 user23156 cphalcon C 11214 \n", "27626 user24204 cphalcon C 11951 \n", "27992 user24520 cphalcon C 2176 \n", "28734 user25172 cphalcon C 636 \n", "29569 user25888 cphalcon C 10007 \n", "29871 user26145 cphalcon C 10802 \n", "30035 user26276 cphalcon C 3051 \n", "30057 user26297 cphalcon C 12757 \n", "30508 user26700 cphalcon C 9927 \n", "30829 user26967 cphalcon C 9918 \n", "32633 user28536 cphalcon C 1033 \n", "32940 user28804 cphalcon C 11983 \n", "33441 user29243 cphalcon C 1490 \n", "33795 user29560 cphalcon C 2354 \n", "37159 user32521 cphalcon C 3340 \n", "39986 user35049 cphalcon C 2689 \n", "41069 user36019 cphalcon C 11071 \n", "41416 user36327 cphalcon C 11148 \n", "41484 user36386 cphalcon C 34 \n", "41679 user36551 cphalcon C 3082 \n", "2465 user2213 ccv C 83 \n", "14883 user13025 ccv C 4 \n", "21334 user18630 ccv C 19 \n", "21728 user18978 ccv C 132 \n", "39827 user34908 ccv C 150 \n", "\n", " num_commits \n", "4780 2 \n", "5142 2 \n", "7862 2 \n", "32077 2 \n", "14874 2 \n", "4628 2 \n", "6163 2 \n", "19480 2 \n", "28014 2 \n", "2938 2 \n", "29652 2 \n", "35752 2 \n", "39930 2 \n", "12063 2 \n", "24217 2 \n", "18678 2 \n", "37326 2 \n", "3309 2 \n", "8441 2 \n", "12193 2 \n", "14382 2 \n", "14478 2 \n", "34893 2 \n", "41348 2 \n", "18750 2 \n", "15621 2 \n", "29010 2 \n", "41824 2 \n", "430 2 \n", "2542 2 \n", "... ... \n", "25269 1 \n", "26031 1 \n", "26174 1 \n", "26259 1 \n", "26272 1 \n", "26445 1 \n", "27626 1 \n", "27992 1 \n", "28734 1 \n", "29569 1 \n", "29871 1 \n", "30035 1 \n", "30057 1 \n", "30508 1 \n", "30829 1 \n", "32633 1 \n", "32940 1 \n", "33441 1 \n", "33795 1 \n", "37159 1 \n", "39986 1 \n", "41069 1 \n", "41416 1 \n", "41484 1 \n", "41679 1 \n", "2465 1 \n", "14883 1 \n", "21334 1 \n", "21728 1 \n", "39827 1 \n", "\n", "[1367 rows x 5 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#####\n", "two_commits = cpr[\"num_commits\"]==2\n", "language_typescript = cpr[\"prog_lang\"]==\"typescript\"\n", "\n", "cpr[(one_commit & language_C) | (two_commits & language_typescript)]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if I wanted to convert number of commits into a feature by creating bands of values that we define:\n", "* 1 commit = group 1\n", "* 2 - 5 commits = group 2\n", "* 6 - 20 commits = group 3\n", "* more than 20 = group 4" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "cpr.loc[cpr[\"num_commits\"]==1, \"group_commit\"]=1\n", "cpr.loc[(cpr[\"num_commits\"]>1) & (cpr[\"num_commits\"]<=5), \"group_commit\"]=2\n", "cpr.loc[(cpr[\"num_commits\"]>5) & (cpr[\"num_commits\"]<=20), \"group_commit\"]=3\n", "cpr.loc[cpr[\"num_commits\"]>20, \"group_commit\"]=4\n", "cpr.group_commit = cpr.group_commit.astype('int32')" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>pull_req_number</th>\n", " <th>num_commits</th>\n", " <th>group_commit</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>14351</th>\n", " <td>user12556</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>678</td>\n", " <td>11</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>40943</th>\n", " <td>user35906</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1609</td>\n", " <td>10</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>35890</th>\n", " <td>user31404</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>565</td>\n", " <td>6</td>\n", " <td>3</td>\n", " </tr>\n", " <tr>\n", " <th>1800</th>\n", " <td>user1614</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1179</td>\n", " <td>3</td>\n", " <td>2</td>\n", " </tr>\n", " <tr>\n", " <th>20245</th>\n", " <td>user17684</td>\n", " <td>winjs</td>\n", " <td>typescript</td>\n", " <td>1559</td>\n", " <td>3</td>\n", " <td>2</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang pull_req_number num_commits \\\n", "14351 user12556 winjs typescript 678 11 \n", "40943 user35906 winjs typescript 1609 10 \n", "35890 user31404 winjs typescript 565 6 \n", "1800 user1614 winjs typescript 1179 3 \n", "20245 user17684 winjs typescript 1559 3 \n", "\n", " group_commit \n", "14351 3 \n", "40943 3 \n", "35890 3 \n", "1800 2 \n", "20245 2 " ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### I challenge you:\n", "\n", "What if: I wanted to know how the average of num_commits for those pull requests in group_commit 4???" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### I challenge you (2):\n", "\n", "Can you do that average per language?\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pull_req_number 8213.5\n", "num_commits 2.0\n", "group_commit 2.0\n", "Name: 0.75, dtype: float64" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cpr[cpr[\"prog_lang\"] == \"typescript\"].quantile(0.75)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "### Some more... " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's work with a new dataset... \n", "\n", "This is not only related to casual contributors, but all contributors" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>user</th>\n", " <th>project_name</th>\n", " <th>prog_lang</th>\n", " <th>num_commits</th>\n", " <th>additions</th>\n", " <th>deletions</th>\n", " <th>files_changed</th>\n", " <th>num_comments</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>52041</th>\n", " <td>user_13168</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1320472.0</td>\n", " <td>24870.0</td>\n", " <td>5865.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>52036</th>\n", " <td>user_13168</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1321513.0</td>\n", " <td>24870.0</td>\n", " <td>5905.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>54883</th>\n", " <td>user_13227</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1549480.0</td>\n", " <td>843841.0</td>\n", " <td>9726.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>52033</th>\n", " <td>user_13168</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1320976.0</td>\n", " <td>24870.0</td>\n", " <td>5892.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>61760</th>\n", " <td>user_13751</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1163795.0</td>\n", " <td>24870.0</td>\n", " <td>5241.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>52034</th>\n", " <td>user_13168</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1321296.0</td>\n", " <td>24870.0</td>\n", " <td>5905.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>61813</th>\n", " <td>user_13757</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1324952.0</td>\n", " <td>24870.0</td>\n", " <td>5903.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>52035</th>\n", " <td>user_13168</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1321419.0</td>\n", " <td>24870.0</td>\n", " <td>5890.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>61841</th>\n", " <td>user_13764</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1539898.0</td>\n", " <td>21568.0</td>\n", " <td>6574.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>54495</th>\n", " <td>user_13188</td>\n", " <td>cocos2d-x</td>\n", " <td>C++</td>\n", " <td>10000.0</td>\n", " <td>1249461.0</td>\n", " <td>1129333.0</td>\n", " <td>8848.0</td>\n", " <td>0.0</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " user project_name prog_lang num_commits additions deletions \\\n", "52041 user_13168 cocos2d-x C++ 10000.0 1320472.0 24870.0 \n", "52036 user_13168 cocos2d-x C++ 10000.0 1321513.0 24870.0 \n", "54883 user_13227 cocos2d-x C++ 10000.0 1549480.0 843841.0 \n", "52033 user_13168 cocos2d-x C++ 10000.0 1320976.0 24870.0 \n", "61760 user_13751 cocos2d-x C++ 10000.0 1163795.0 24870.0 \n", "52034 user_13168 cocos2d-x C++ 10000.0 1321296.0 24870.0 \n", "61813 user_13757 cocos2d-x C++ 10000.0 1324952.0 24870.0 \n", "52035 user_13168 cocos2d-x C++ 10000.0 1321419.0 24870.0 \n", "61841 user_13764 cocos2d-x C++ 10000.0 1539898.0 21568.0 \n", "54495 user_13188 cocos2d-x C++ 10000.0 1249461.0 1129333.0 \n", "\n", " files_changed num_comments \n", "52041 5865.0 0.0 \n", "52036 5905.0 0.0 \n", "54883 9726.0 0.0 \n", "52033 5892.0 0.0 \n", "61760 5241.0 0.0 \n", "52034 5905.0 0.0 \n", "61813 5903.0 0.0 \n", "52035 5890.0 0.0 \n", "61841 6574.0 0.0 \n", "54495 8848.0 0.0 " ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "commits_complete = pandas.read_csv('commit_complete.csv')\n", "commits_complete.sort_values('num_commits', ascending=False).head(10)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.6573205139433453" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "commits_complete['num_commits'].corr(commits_complete['additions'])" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style scoped>\n", " .dataframe tbody tr th:only-of-type {\n", " vertical-align: middle;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: right;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>num_commits</th>\n", " <th>additions</th>\n", " <th>deletions</th>\n", " <th>files_changed</th>\n", " <th>num_comments</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>num_commits</th>\n", " <td>1.000000</td>\n", " <td>0.657321</td>\n", " <td>0.151074</td>\n", " <td>0.605152</td>\n", " <td>-0.007297</td>\n", " </tr>\n", " <tr>\n", " <th>additions</th>\n", " <td>0.657321</td>\n", " <td>1.000000</td>\n", " <td>0.244859</td>\n", " <td>0.749543</td>\n", " <td>-0.002682</td>\n", " </tr>\n", " <tr>\n", " <th>deletions</th>\n", " <td>0.151074</td>\n", " <td>0.244859</td>\n", " <td>1.000000</td>\n", " <td>0.566905</td>\n", " <td>0.011876</td>\n", " </tr>\n", " <tr>\n", " <th>files_changed</th>\n", " <td>0.605152</td>\n", " <td>0.749543</td>\n", " <td>0.566905</td>\n", " <td>1.000000</td>\n", " <td>0.003657</td>\n", " </tr>\n", " <tr>\n", " <th>num_comments</th>\n", " <td>-0.007297</td>\n", " <td>-0.002682</td>\n", " <td>0.011876</td>\n", " <td>0.003657</td>\n", " <td>1.000000</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " num_commits additions deletions files_changed num_comments\n", "num_commits 1.000000 0.657321 0.151074 0.605152 -0.007297\n", "additions 0.657321 1.000000 0.244859 0.749543 -0.002682\n", "deletions 0.151074 0.244859 1.000000 0.566905 0.011876\n", "files_changed 0.605152 0.749543 0.566905 1.000000 0.003657\n", "num_comments -0.007297 -0.002682 0.011876 0.003657 1.000000" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "commits_complete.corr()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "<style type=\"text/css\" >\n", " #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col0 {\n", " background-color: #b40426;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col1 {\n", " background-color: #f7ba9f;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col2 {\n", " background-color: #6788ee;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col3 {\n", " background-color: #f2cab5;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col4 {\n", " background-color: #3b4cc0;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col0 {\n", " background-color: #f7ba9f;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col1 {\n", " background-color: #b40426;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col2 {\n", " background-color: #88abfd;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col3 {\n", " background-color: #f49a7b;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col4 {\n", " background-color: #3c4ec2;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col0 {\n", " background-color: #6c8ff1;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col1 {\n", " background-color: #8caffe;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col2 {\n", " background-color: #b40426;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col3 {\n", " background-color: #ecd3c5;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col4 {\n", " background-color: #3f53c6;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col0 {\n", " background-color: #f2c9b4;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col1 {\n", " background-color: #f4987a;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col2 {\n", " background-color: #ebd3c6;\n", " color: #000000;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col3 {\n", " background-color: #b40426;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col4 {\n", " background-color: #3d50c3;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col0 {\n", " background-color: #3b4cc0;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col1 {\n", " background-color: #3b4cc0;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col2 {\n", " background-color: #3b4cc0;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col3 {\n", " background-color: #3b4cc0;\n", " color: #f1f1f1;\n", " } #T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col4 {\n", " background-color: #b40426;\n", " color: #f1f1f1;\n", " }</style><table id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87b\" ><thead> <tr> <th class=\"blank level0\" ></th> <th class=\"col_heading level0 col0\" >num_commits</th> <th class=\"col_heading level0 col1\" >additions</th> <th class=\"col_heading level0 col2\" >deletions</th> <th class=\"col_heading level0 col3\" >files_changed</th> <th class=\"col_heading level0 col4\" >num_comments</th> </tr></thead><tbody>\n", " <tr>\n", " <th id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87blevel0_row0\" class=\"row_heading level0 row0\" >num_commits</th>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col0\" class=\"data row0 col0\" >1</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col1\" class=\"data row0 col1\" >0.657321</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col2\" class=\"data row0 col2\" >0.151074</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col3\" class=\"data row0 col3\" >0.605152</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow0_col4\" class=\"data row0 col4\" >-0.00729652</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87blevel0_row1\" class=\"row_heading level0 row1\" >additions</th>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col0\" class=\"data row1 col0\" >0.657321</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col1\" class=\"data row1 col1\" >1</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col2\" class=\"data row1 col2\" >0.244859</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col3\" class=\"data row1 col3\" >0.749543</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow1_col4\" class=\"data row1 col4\" >-0.00268151</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87blevel0_row2\" class=\"row_heading level0 row2\" >deletions</th>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col0\" class=\"data row2 col0\" >0.151074</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col1\" class=\"data row2 col1\" >0.244859</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col2\" class=\"data row2 col2\" >1</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col3\" class=\"data row2 col3\" >0.566905</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow2_col4\" class=\"data row2 col4\" >0.0118759</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87blevel0_row3\" class=\"row_heading level0 row3\" >files_changed</th>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col0\" class=\"data row3 col0\" >0.605152</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col1\" class=\"data row3 col1\" >0.749543</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col2\" class=\"data row3 col2\" >0.566905</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col3\" class=\"data row3 col3\" >1</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow3_col4\" class=\"data row3 col4\" >0.00365692</td>\n", " </tr>\n", " <tr>\n", " <th id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87blevel0_row4\" class=\"row_heading level0 row4\" >num_comments</th>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col0\" class=\"data row4 col0\" >-0.00729652</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col1\" class=\"data row4 col1\" >-0.00268151</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col2\" class=\"data row4 col2\" >0.0118759</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col3\" class=\"data row4 col3\" >0.00365692</td>\n", " <td id=\"T_cf1fa96e_f676_11e9_99a4_3af9d378f87brow4_col4\" class=\"data row4 col4\" >1</td>\n", " </tr>\n", " </tbody></table>" ], "text/plain": [ "<pandas.io.formats.style.Styler at 0x116f13da0>" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "commits_complete.corr(method='pearson').style.background_gradient(cmap='coolwarm')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Can we play with graphics?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Plot types:**\n", "- 'line' : line plot (default)\n", "- 'bar' : vertical bar plot\n", "- 'barh' : horizontal bar plot\n", "- 'hist' : histogram\n", "- 'box' : boxplot\n", "- 'kde' : Kernel Density Estimation plot\n", "- 'density' : same as 'kde'\n", "- 'area' : area plot\n", "- 'pie' : pie plot\n", "- 'scatter' : scatter plot\n", "- 'hexbin' : hexbin plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Histogram**" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x116703e48>" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cpr.num_commits.plot.hist(bins=200)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.legend.Legend at 0x113399278>" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cpr[cpr[\"prog_lang\"]==\"C\"].num_commits.plot.hist(bins=20, color=\"red\", alpha=0.5)\n", "cpr[cpr[\"prog_lang\"]==\"java\"].num_commits.plot.hist(bins=20, alpha=0.5).legend([\"C\", \"Java\"])" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x1134acbe0>" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cpr['prog_lang'].value_counts().plot.bar()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x1135ca390>" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "cpr[cpr[\"prog_lang\"]== \"C\"].project_name.value_counts().plot.bar()" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x11347bcf8>" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "commits_complete.plot.scatter(x = \"files_changed\", y = \"num_commits\")" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x113489400>" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "lang_c = cpr.prog_lang==\"C\"\n", "lang_java = cpr.prog_lang==\"java\"\n", "lang_php = cpr.prog_lang==\"php\"\n", "\n", "\n", "cpr[(lang_c) | (lang_java) | (lang_php)].boxplot(by='prog_lang', column=['num_commits'])\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, '')" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\n", "plot = cpr[(lang_c) | (lang_java) | (lang_php)].boxplot(by='prog_lang', column=['num_commits'], showfliers=False, grid=False)\n", "\n", "plot.set_xlabel(\"Language\")\n", "plot.set_ylabel(\"# of commits\")\n", "plot.set_title(\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Just to show...**\n", "\n", "that it is possible to do statistical analysis" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "MannwhitneyuResult(statistic=2481768.0, pvalue=2.1763470665307134e-20)" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scipy import stats\n", "\n", "stats.mannwhitneyu(cpr[(lang_c)].num_commits, cpr[(lang_java)].num_commits)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exporting" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'prog_lang': {14351: 'typescript',\n", " 40943: 'typescript',\n", " 35890: 'typescript',\n", " 1800: 'typescript',\n", " 20245: 'typescript',\n", " 29167: 'typescript',\n", " 4780: 'typescript',\n", " 5142: 'typescript',\n", " 7862: 'typescript',\n", " 32077: 'typescript',\n", " 535: 'typescript',\n", " 2368: 'typescript',\n", " 3644: 'typescript',\n", " 6174: 'typescript',\n", " 9288: 'typescript',\n", " 9851: 'typescript',\n", " 14019: 'typescript',\n", " 17979: 'typescript',\n", " 20726: 'typescript',\n", " 25046: 'typescript',\n", " 28071: 'typescript',\n", " 28507: 'typescript',\n", " 29869: 'typescript',\n", " 34060: 'typescript',\n", " 34065: 'typescript',\n", " 39071: 'typescript',\n", " 854: 'typescript',\n", " 14874: 'typescript',\n", " 1860: 'typescript',\n", " 3667: 'typescript',\n", " 4370: 'typescript',\n", " 4815: 'typescript',\n", " 8702: 'typescript',\n", " 8937: 'typescript',\n", " 12216: 'typescript',\n", " 12674: 'typescript',\n", " 24329: 'typescript',\n", " 27932: 'typescript',\n", " 34233: 'typescript',\n", " 37983: 'typescript',\n", " 38922: 'typescript',\n", " 39249: 'typescript',\n", " 2131: 'typescript',\n", " 32309: 'typescript',\n", " 32557: 'typescript',\n", " 4249: 'typescript',\n", " 35078: 'typescript',\n", " 40918: 'typescript',\n", " 4628: 'typescript',\n", " 6163: 'typescript',\n", " 19480: 'typescript',\n", " 28014: 'typescript',\n", " 1465: 'typescript',\n", " 4491: 'typescript',\n", " 8228: 'typescript',\n", " 13271: 'typescript',\n", " 14337: 'typescript',\n", " 17756: 'typescript',\n", " 18359: 'typescript',\n", " 20548: 'typescript',\n", " 22726: 'typescript',\n", " 27413: 'typescript',\n", " 27831: 'typescript',\n", " 29199: 'typescript',\n", " 31193: 'typescript',\n", " 41245: 'typescript',\n", " 26242: 'typescript',\n", " 9564: 'typescript',\n", " 11313: 'typescript',\n", " 28612: 'typescript',\n", " 33920: 'typescript',\n", " 12142: 'typescript',\n", " 21945: 'typescript',\n", " 2681: 'typescript',\n", " 35930: 'typescript',\n", " 2938: 'typescript',\n", " 29652: 'typescript',\n", " 35752: 'typescript',\n", " 39930: 'typescript',\n", " 2672: 'typescript',\n", " 5431: 'typescript',\n", " 7477: 'typescript',\n", " 7620: 'typescript',\n", " 10958: 'typescript',\n", " 11155: 'typescript',\n", " 11660: 'typescript',\n", " 13310: 'typescript',\n", " 13811: 'typescript',\n", " 16395: 'typescript',\n", " 18022: 'typescript',\n", " 18472: 'typescript',\n", " 23164: 'typescript',\n", " 26882: 'typescript',\n", " 29553: 'typescript',\n", " 30362: 'typescript',\n", " 30478: 'typescript',\n", " 33480: 'typescript',\n", " 35636: 'typescript',\n", " 35904: 'typescript',\n", " 38979: 'typescript',\n", " 3994: 'typescript',\n", " 4812: 'typescript',\n", " 17696: 'typescript',\n", " 19075: 'typescript',\n", " 19789: 'typescript',\n", " 25409: 'typescript',\n", " 31586: 'typescript',\n", " 31940: 'typescript',\n", " 32836: 'typescript',\n", " 36545: 'typescript',\n", " 38333: 'typescript',\n", " 12063: 'typescript',\n", " 24217: 'typescript',\n", " 11670: 'typescript',\n", " 15277: 'typescript',\n", " 31244: 'typescript',\n", " 31667: 'typescript',\n", " 35068: 'typescript',\n", " 36274: 'typescript',\n", " 39993: 'typescript',\n", " 18678: 'typescript',\n", " 37326: 'typescript',\n", " 15342: 'typescript',\n", " 25235: 'typescript',\n", " 29153: 'typescript',\n", " 31694: 'typescript',\n", " 29780: 'typescript',\n", " 40003: 'typescript',\n", " 3309: 'typescript',\n", " 8441: 'typescript',\n", " 12193: 'typescript',\n", " 14382: 'typescript',\n", " 14478: 'typescript',\n", " 34893: 'typescript',\n", " 41348: 'typescript',\n", " 7332: 'typescript',\n", " 11531: 'typescript',\n", " 13342: 'typescript',\n", " 16156: 'typescript',\n", " 20393: 'typescript',\n", " 20614: 'typescript',\n", " 22498: 'typescript',\n", " 26239: 'typescript',\n", " 27240: 'typescript',\n", " 28979: 'typescript',\n", " 30062: 'typescript',\n", " 32301: 'typescript',\n", " 32479: 'typescript',\n", " 34161: 'typescript',\n", " 34546: 'typescript',\n", " 39005: 'typescript',\n", " 39750: 'typescript',\n", " 40282: 'typescript',\n", " 41814: 'typescript',\n", " 8041: 'typescript',\n", " 41987: 'typescript',\n", " 18750: 'typescript',\n", " 4447: 'typescript',\n", " 6903: 'typescript',\n", " 8578: 'typescript',\n", " 12070: 'typescript',\n", " 16325: 'typescript',\n", " 19790: 'typescript',\n", " 22746: 'typescript',\n", " 23155: 'typescript',\n", " 35582: 'typescript',\n", " 39168: 'typescript',\n", " 39989: 'typescript',\n", " 41222: 'typescript',\n", " 41923: 'typescript',\n", " 20572: 'typescript',\n", " 15621: 'typescript',\n", " 29010: 'typescript',\n", " 41824: 'typescript',\n", " 1069: 'typescript',\n", " 5317: 'typescript',\n", " 11557: 'typescript',\n", " 12890: 'typescript',\n", " 14017: 'typescript',\n", " 16537: 'typescript',\n", " 24836: 'typescript',\n", " 29412: 'typescript',\n", " 29507: 'typescript',\n", " 31063: 'typescript',\n", " 40026: 'typescript',\n", " 3227: 'typescript',\n", " 18237: 'typescript',\n", " 40005: 'typescript',\n", " 929: 'typescript',\n", " 21101: 'typescript',\n", " 354: 'typescript',\n", " 2116: 'typescript',\n", " 6570: 'typescript',\n", " 15272: 'typescript',\n", " 6145: 'typescript',\n", " 29531: 'typescript',\n", " 23981: 'typescript',\n", " 9147: 'typescript',\n", " 39165: 'typescript',\n", " 10443: 'typescript',\n", " 16254: 'typescript',\n", " 25429: 'typescript',\n", " 39046: 'typescript',\n", " 10768: 'typescript',\n", " 24609: 'typescript',\n", " 33636: 'typescript',\n", " 35945: 'typescript',\n", " 40284: 'typescript',\n", " 41317: 'typescript',\n", " 10062: 'typescript',\n", " 11627: 'typescript',\n", " 18716: 'typescript',\n", " 21366: 'typescript',\n", " 27898: 'typescript',\n", " 28578: 'typescript',\n", " 29516: 'typescript',\n", " 34032: 'typescript',\n", " 40557: 'typescript',\n", " 2353: 'typescript',\n", " 6494: 'typescript',\n", " 8087: 'typescript',\n", " 12086: 'typescript',\n", " 13975: 'typescript',\n", " 14152: 'typescript',\n", " 15529: 'typescript',\n", " 16107: 'typescript',\n", " 20922: 'typescript',\n", " 26166: 'typescript',\n", " 27277: 'typescript',\n", " 28227: 'typescript',\n", " 28312: 'typescript',\n", " 29200: 'typescript',\n", " 33078: 'typescript',\n", " 39451: 'typescript',\n", " 41280: 'typescript',\n", " 430: 'typescript',\n", " 2542: 'typescript',\n", " 2812: 'typescript',\n", " 4629: 'typescript',\n", " 4937: 'typescript',\n", " 8823: 'typescript',\n", " 11962: 'typescript',\n", " 12041: 'typescript',\n", " 12717: 'typescript',\n", " 13291: 'typescript',\n", " 13427: 'typescript',\n", " 14746: 'typescript',\n", " 16120: 'typescript',\n", " 20357: 'typescript',\n", " 20551: 'typescript',\n", " 27272: 'typescript',\n", " 28638: 'typescript',\n", " 29524: 'typescript',\n", " 31344: 'typescript',\n", " 31641: 'typescript',\n", " 31734: 'typescript',\n", " 32074: 'typescript',\n", " 32193: 'typescript',\n", " 33829: 'typescript',\n", " 36412: 'typescript',\n", " 36777: 'typescript',\n", " 37257: 'typescript',\n", " 37266: 'typescript',\n", " 38129: 'typescript',\n", " 38170: 'typescript',\n", " 38690: 'typescript',\n", " 39504: 'typescript',\n", " 40592: 'typescript',\n", " 41818: 'typescript',\n", " 197: 'typescript',\n", " 1782: 'typescript',\n", " 2075: 'typescript',\n", " 3165: 'typescript',\n", " 3788: 'typescript',\n", " 3798: 'typescript',\n", " 4131: 'typescript',\n", " 4146: 'typescript',\n", " 4756: 'typescript',\n", " 4987: 'typescript',\n", " 5364: 'typescript',\n", " 5550: 'typescript',\n", " 5925: 'typescript',\n", " 6301: 'typescript',\n", " 6547: 'typescript',\n", " 8040: 'typescript',\n", " 8660: 'typescript',\n", " 9254: 'typescript',\n", " 9619: 'typescript',\n", " 11802: 'typescript',\n", " 12203: 'typescript',\n", " 12563: 'typescript',\n", " 12775: 'typescript',\n", " 13008: 'typescript',\n", " 13343: 'typescript',\n", " 13617: 'typescript',\n", " 14018: 'typescript',\n", " 14160: 'typescript',\n", " 14648: 'typescript',\n", " 15128: 'typescript',\n", " 15474: 'typescript',\n", " 15699: 'typescript',\n", " 16312: 'typescript',\n", " 16538: 'typescript',\n", " 17031: 'typescript',\n", " 17659: 'typescript',\n", " 17991: 'typescript',\n", " 18685: 'typescript',\n", " 19279: 'typescript',\n", " 19326: 'typescript',\n", " 19940: 'typescript',\n", " 20883: 'typescript',\n", " 20992: 'typescript',\n", " 21342: 'typescript',\n", " 21458: 'typescript',\n", " 22877: 'typescript',\n", " 22912: 'typescript',\n", " 23448: 'typescript',\n", " 23476: 'typescript',\n", " 23611: 'typescript',\n", " 24365: 'typescript',\n", " 24398: 'typescript',\n", " 24521: 'typescript',\n", " 24678: 'typescript',\n", " 25298: 'typescript',\n", " 25808: 'typescript',\n", " 25996: 'typescript',\n", " 28841: 'typescript',\n", " 29590: 'typescript',\n", " 29852: 'typescript',\n", " 29937: 'typescript',\n", " 30107: 'typescript',\n", " 30553: 'typescript',\n", " 30675: 'typescript',\n", " 30819: 'typescript',\n", " 31909: 'typescript',\n", " 33564: 'typescript',\n", " 34245: 'typescript',\n", " 35500: 'typescript',\n", " 36419: 'typescript',\n", " 36968: 'typescript',\n", " 38014: 'typescript',\n", " 38694: 'typescript',\n", " 39667: 'typescript',\n", " 12366: 'scala',\n", " 30943: 'scala',\n", " 10321: 'scala',\n", " 18803: 'scala',\n", " 507: 'scala',\n", " 4802: 'scala',\n", " 30714: 'scala',\n", " 37109: 'scala',\n", " 31265: 'scala',\n", " 20512: 'scala',\n", " 122: 'scala',\n", " 462: 'scala',\n", " 1139: 'scala',\n", " 1468: 'scala',\n", " 1819: 'scala',\n", " 2149: 'scala',\n", " 2873: 'scala',\n", " 2876: 'scala',\n", " 3499: 'scala',\n", " 3850: 'scala',\n", " 4101: 'scala',\n", " 4281: 'scala',\n", " 4408: 'scala',\n", " 4414: 'scala',\n", " 4570: 'scala',\n", " 4692: 'scala',\n", " 4710: 'scala',\n", " 4809: 'scala',\n", " 4881: 'scala',\n", " 6011: 'scala',\n", " 6071: 'scala',\n", " 6263: 'scala',\n", " 6526: 'scala',\n", " 6928: 'scala',\n", " 6949: 'scala',\n", " 7378: 'scala',\n", " 7461: 'scala',\n", " 7695: 'scala',\n", " 7849: 'scala',\n", " 7868: 'scala',\n", " 8358: 'scala',\n", " 8704: 'scala',\n", " 9543: 'scala',\n", " 9621: 'scala',\n", " 10127: 'scala',\n", " 10274: 'scala',\n", " 10275: 'scala',\n", " 10548: 'scala',\n", " 10728: 'scala',\n", " 10826: 'scala',\n", " 10837: 'scala',\n", " 10882: 'scala',\n", " 11348: 'scala',\n", " 11838: 'scala',\n", " 11973: 'scala',\n", " 12959: 'scala',\n", " 13323: 'scala',\n", " 14120: 'scala',\n", " 14128: 'scala',\n", " 14182: 'scala',\n", " 14661: 'scala',\n", " 15515: 'scala',\n", " 15847: 'scala',\n", " 16063: 'scala',\n", " 16835: 'scala',\n", " 16981: 'scala',\n", " 17168: 'scala',\n", " 17231: 'scala',\n", " 17422: 'scala',\n", " 17489: 'scala',\n", " 18825: 'scala',\n", " 19072: 'scala',\n", " 19118: 'scala',\n", " 19156: 'scala',\n", " 19572: 'scala',\n", " 19748: 'scala',\n", " 20124: 'scala',\n", " 20237: 'scala',\n", " 20457: 'scala',\n", " 21179: 'scala',\n", " 21228: 'scala',\n", " 21252: 'scala',\n", " 21624: 'scala',\n", " 22099: 'scala',\n", " 22148: 'scala',\n", " 22556: 'scala',\n", " 22993: 'scala',\n", " 23425: 'scala',\n", " 23429: 'scala',\n", " 23687: 'scala',\n", " 24093: 'scala',\n", " 24265: 'scala',\n", " 24276: 'scala',\n", " 24549: 'scala',\n", " 25105: 'scala',\n", " 25490: 'scala',\n", " 25616: 'scala',\n", " 25649: 'scala',\n", " 25972: 'scala',\n", " 26045: 'scala',\n", " 26629: 'scala',\n", " 26636: 'scala',\n", " 27299: 'scala',\n", " 27592: 'scala',\n", " 28459: 'scala',\n", " 28585: 'scala',\n", " 28653: 'scala',\n", " 29086: 'scala',\n", " 29298: 'scala',\n", " 29435: 'scala',\n", " 29899: 'scala',\n", " 30053: 'scala',\n", " 30070: 'scala',\n", " 30144: 'scala',\n", " 30383: 'scala',\n", " 30802: 'scala',\n", " 30921: 'scala',\n", " 30997: 'scala',\n", " 31677: 'scala',\n", " 32097: 'scala',\n", " 32111: 'scala',\n", " 32113: 'scala',\n", " 32201: 'scala',\n", " 32243: 'scala',\n", " 32279: 'scala',\n", " 32666: 'scala',\n", " 33159: 'scala',\n", " 33253: 'scala',\n", " 33848: 'scala',\n", " 33856: 'scala',\n", " 34009: 'scala',\n", " 34028: 'scala',\n", " 34112: 'scala',\n", " 34394: 'scala',\n", " 34497: 'scala',\n", " 34662: 'scala',\n", " 34703: 'scala',\n", " 34809: 'scala',\n", " 35193: 'scala',\n", " 35354: 'scala',\n", " 35376: 'scala',\n", " 35725: 'scala',\n", " 36673: 'scala',\n", " 36774: 'scala',\n", " 37011: 'scala',\n", " 37140: 'scala',\n", " 38132: 'scala',\n", " 38234: 'scala',\n", " 38373: 'scala',\n", " 38513: 'scala',\n", " 38995: 'scala',\n", " 39642: 'scala',\n", " 39688: 'scala',\n", " 39692: 'scala',\n", " 40100: 'scala',\n", " 40837: 'scala',\n", " 41224: 'scala',\n", " 41974: 'scala',\n", " 31654: 'scala',\n", " 2351: 'scala',\n", " 23016: 'scala',\n", " 40369: 'scala',\n", " 36508: 'scala',\n", " 40948: 'scala',\n", " 12501: 'scala',\n", " 5573: 'scala',\n", " 10374: 'scala',\n", " 28911: 'scala',\n", " 29639: 'scala',\n", " 33122: 'scala',\n", " 40504: 'scala',\n", " 28648: 'scala',\n", " 7860: 'scala',\n", " 6549: 'scala',\n", " 23186: 'scala',\n", " 23904: 'scala',\n", " 12450: 'scala',\n", " 20731: 'scala',\n", " 39334: 'scala',\n", " 5193: 'scala',\n", " 25197: 'scala',\n", " 36784: 'scala',\n", " 840: 'scala',\n", " 6622: 'scala',\n", " 14405: 'scala',\n", " 37170: 'scala',\n", " 1198: 'scala',\n", " 1521: 'scala',\n", " 4264: 'scala',\n", " 8205: 'scala',\n", " 9884: 'scala',\n", " 13190: 'scala',\n", " 13284: 'scala',\n", " 18718: 'scala',\n", " 18761: 'scala',\n", " 25123: 'scala',\n", " 25454: 'scala',\n", " 31235: 'scala',\n", " 38798: 'scala',\n", " 38868: 'scala',\n", " 39077: 'scala',\n", " 39338: 'scala',\n", " 40476: 'scala',\n", " 123: 'scala',\n", " 524: 'scala',\n", " 1741: 'scala',\n", " 1869: 'scala',\n", " 3600: 'scala',\n", " 4142: 'scala',\n", " 5226: 'scala',\n", " 6331: 'scala',\n", " 7608: 'scala',\n", " 7830: 'scala',\n", " 9390: 'scala',\n", " 16721: 'scala',\n", " 17229: 'scala',\n", " 17679: 'scala',\n", " 19214: 'scala',\n", " 19643: 'scala',\n", " 21572: 'scala',\n", " 25124: 'scala',\n", " 27508: 'scala',\n", " 28075: 'scala',\n", " 30516: 'scala',\n", " 32084: 'scala',\n", " 33038: 'scala',\n", " 34692: 'scala',\n", " 35165: 'scala',\n", " 39652: 'scala',\n", " 39757: 'scala',\n", " 4861: 'scala',\n", " 14075: 'scala',\n", " 16237: 'scala',\n", " 16501: 'scala',\n", " 3099: 'scala',\n", " 10072: 'scala',\n", " 11486: 'scala',\n", " 15705: 'scala',\n", " 29790: 'scala',\n", " 34589: 'scala',\n", " 34939: 'scala',\n", " 4402: 'scala',\n", " 8430: 'scala',\n", " 9531: 'scala',\n", " 9549: 'scala',\n", " 13976: 'scala',\n", " 14403: 'scala',\n", " 15660: 'scala',\n", " 17385: 'scala',\n", " 20910: 'scala',\n", " 20929: 'scala',\n", " 21167: 'scala',\n", " 25492: 'scala',\n", " 26085: 'scala',\n", " 26575: 'scala',\n", " 27582: 'scala',\n", " 33415: 'scala',\n", " 35647: 'scala',\n", " 35974: 'scala',\n", " 12667: 'scala',\n", " 565: 'scala',\n", " 1692: 'scala',\n", " 21939: 'scala',\n", " 4325: 'scala',\n", " 35296: 'scala',\n", " 1046: 'scala',\n", " 14350: 'scala',\n", " 30952: 'scala',\n", " 826: 'scala',\n", " 10663: 'scala',\n", " 21571: 'scala',\n", " 22322: 'scala',\n", " 29528: 'scala',\n", " 35420: 'scala',\n", " 38722: 'scala',\n", " 1197: 'scala',\n", " 16573: 'scala',\n", " 23870: 'scala',\n", " 24260: 'scala',\n", " 24900: 'scala',\n", " 31035: 'scala',\n", " 31200: 'scala',\n", " 35059: 'scala',\n", " 35602: 'scala',\n", " 40091: 'scala',\n", " 2364: 'scala',\n", " 5998: 'scala',\n", " 11123: 'scala',\n", " 15465: 'scala',\n", " 17035: 'scala',\n", " 18943: 'scala',\n", " 20113: 'scala',\n", " 21964: 'scala',\n", " 22939: 'scala',\n", " 23562: 'scala',\n", " 25949: 'scala',\n", " 27285: 'scala',\n", " 29152: 'scala',\n", " 33066: 'scala',\n", " 33577: 'scala',\n", " 35639: 'scala',\n", " 38345: 'scala',\n", " 1565: 'scala',\n", " 2355: 'scala',\n", " 2531: 'scala',\n", " 7783: 'scala',\n", " 8633: 'scala',\n", " 9603: 'scala',\n", " 10667: 'scala',\n", " 11758: 'scala',\n", " 12705: 'scala',\n", " 13603: 'scala',\n", " 16218: 'scala',\n", " 19260: 'scala',\n", " 19327: 'scala',\n", " 19774: 'scala',\n", " 20713: 'scala',\n", " 22041: 'scala',\n", " 25332: 'scala',\n", " 27515: 'scala',\n", " 28837: 'scala',\n", " 30282: 'scala',\n", " 30583: 'scala',\n", " 31010: 'scala',\n", " 31327: 'scala',\n", " 31828: 'scala',\n", " 32047: 'scala',\n", " 32693: 'scala',\n", " 36064: 'scala',\n", " 36372: 'scala',\n", " 38088: 'scala',\n", " 39481: 'scala',\n", " 39538: 'scala',\n", " 40280: 'scala',\n", " 6310: 'scala',\n", " 3719: 'scala',\n", " 11933: 'scala',\n", " 2418: 'scala',\n", " 10488: 'scala',\n", " 10694: 'scala',\n", " 16709: 'scala',\n", " 17666: 'scala',\n", " 20541: 'scala',\n", " 10425: 'scala',\n", " 11811: 'scala',\n", " 20412: 'scala',\n", " 25681: 'scala',\n", " 26340: 'scala',\n", " 27991: 'scala',\n", " 32627: 'scala',\n", " 983: 'scala',\n", " 3944: 'scala',\n", " 7197: 'scala',\n", " 7408: 'scala',\n", " 9727: 'scala',\n", " 20692: 'scala',\n", " 22084: 'scala',\n", " 22648: 'scala',\n", " 23912: 'scala',\n", " 25462: 'scala',\n", " 25463: 'scala',\n", " 28007: 'scala',\n", " 30461: 'scala',\n", " 31605: 'scala',\n", " 32218: 'scala',\n", " 32718: 'scala',\n", " 36258: 'scala',\n", " 37067: 'scala',\n", " 1288: 'scala',\n", " 2548: 'scala',\n", " 2875: 'scala',\n", " 3821: 'scala',\n", " 4104: 'scala',\n", " 4701: 'scala',\n", " 5381: 'scala',\n", " 5424: 'scala',\n", " 6592: 'scala',\n", " 7918: 'scala',\n", " 9247: 'scala',\n", " 9281: 'scala',\n", " 11757: 'scala',\n", " 11783: 'scala',\n", " 14168: 'scala',\n", " 16137: 'scala',\n", " 16212: 'scala',\n", " 16258: 'scala',\n", " 17695: 'scala',\n", " 18401: 'scala',\n", " 19617: 'scala',\n", " 19757: 'scala',\n", " 20022: 'scala',\n", " 20568: 'scala',\n", " 21429: 'scala',\n", " 21841: 'scala',\n", " 23287: 'scala',\n", " 24024: 'scala',\n", " 25023: 'scala',\n", " 25431: 'scala',\n", " 25457: 'scala',\n", " 25683: 'scala',\n", " 25941: 'scala',\n", " 26452: 'scala',\n", " 26985: 'scala',\n", " 27181: 'scala',\n", " 27284: 'scala',\n", " 27700: 'scala',\n", " 28197: 'scala',\n", " 28886: 'scala',\n", " 29587: 'scala',\n", " 29778: 'scala',\n", " 30259: 'scala',\n", " 30515: 'scala',\n", " 31249: 'scala',\n", " 31402: 'scala',\n", " 31760: 'scala',\n", " 32091: 'scala',\n", " 32169: 'scala',\n", " 34049: 'scala',\n", " 34449: 'scala',\n", " 35009: 'scala',\n", " 36610: 'scala',\n", " 37777: 'scala',\n", " 38282: 'scala',\n", " 38535: 'scala',\n", " 39818: 'scala',\n", " 41124: 'scala',\n", " 17228: 'scala',\n", " 6010: 'scala',\n", " 22982: 'scala',\n", " 23269: 'scala',\n", " 32320: 'scala',\n", " 39238: 'scala',\n", " 11661: 'scala',\n", " 18328: 'scala',\n", " 34648: 'scala',\n", " 35164: 'scala',\n", " 41253: 'scala',\n", " 898: 'scala',\n", " 2178: 'scala',\n", " 6633: 'scala',\n", " 11828: 'scala',\n", " 15352: 'scala',\n", " 24104: 'scala',\n", " 24813: 'scala',\n", " 27736: 'scala',\n", " 29366: 'scala',\n", " 36257: 'scala',\n", " 37295: 'scala',\n", " 313: 'scala',\n", " 2049: 'scala',\n", " 2437: 'scala',\n", " 2547: 'scala',\n", " 2688: 'scala',\n", " 2874: 'scala',\n", " 3231: 'scala',\n", " 3487: 'scala',\n", " 8093: 'scala',\n", " 8785: 'scala',\n", " 10320: 'scala',\n", " 10591: 'scala',\n", " 11300: 'scala',\n", " 12020: 'scala',\n", " 12365: 'scala',\n", " 14016: 'scala',\n", " 15786: 'scala',\n", " 17874: 'scala',\n", " 19029: 'scala',\n", " 19436: 'scala',\n", " 22091: 'scala',\n", " 23478: 'scala',\n", " 25022: 'scala',\n", " 25637: 'scala',\n", " 25777: 'scala',\n", " 26082: 'scala',\n", " 26195: 'scala',\n", " 27890: 'scala',\n", " 28528: 'scala',\n", " 29853: 'scala',\n", " 30339: 'scala',\n", " 31713: 'scala',\n", " 32173: 'scala',\n", " 33121: 'scala',\n", " 33297: 'scala',\n", " 35336: 'scala',\n", " 36580: 'scala',\n", " 39320: 'scala',\n", " 41247: 'scala',\n", " 28671: 'scala',\n", " 26850: 'scala',\n", " 26616: 'scala',\n", " 14338: 'scala',\n", " 1421: 'scala',\n", " 10561: 'scala',\n", " 11000: 'scala',\n", " 12517: 'scala',\n", " 15469: 'scala',\n", " 20016: 'scala',\n", " 24130: 'scala',\n", " 25963: 'scala',\n", " 29033: 'scala',\n", " 35622: 'scala',\n", " 38051: 'scala',\n", " 38465: 'scala',\n", " 39740: 'scala',\n", " 3448: 'scala',\n", " 3489: 'scala',\n", " 6804: 'scala',\n", " 7634: 'scala',\n", " 9246: 'scala',\n", " 10720: 'scala',\n", " 13198: 'scala',\n", " 14873: 'scala',\n", " 16720: 'scala',\n", " 17233: 'scala',\n", " 18438: 'scala',\n", " 26984: 'scala',\n", " 28836: 'scala',\n", " 29373: 'scala',\n", " 29876: 'scala',\n", " 40768: 'scala',\n", " 12057: 'scala',\n", " 33654: 'scala',\n", " 40806: 'scala',\n", " 11944: 'scala',\n", " 39098: 'scala',\n", " 3364: 'scala',\n", " 29022: 'scala',\n", " 5225: 'scala',\n", " 29608: 'scala',\n", " 39654: 'scala',\n", " 10254: 'scala',\n", " 37042: 'scala',\n", " 15347: 'scala',\n", " 17043: 'scala',\n", " 22938: 'scala',\n", " 28597: 'scala',\n", " 782: 'scala',\n", " 3050: 'scala',\n", " 3421: 'scala',\n", " 9023: 'scala',\n", " 17382: 'scala',\n", " 18793: 'scala',\n", " 19278: 'scala',\n", " 21762: 'scala',\n", " 22647: 'scala',\n", " 25072: 'scala',\n", " 34229: 'scala',\n", " 38021: 'scala',\n", " 39741: 'scala',\n", " 39823: 'scala',\n", " 87: 'scala',\n", " 585: 'scala',\n", " 849: 'scala',\n", " 1464: 'scala',\n", " 1740: 'scala',\n", " 2009: 'scala',\n", " 3062: 'scala',\n", " 3651: 'scala',\n", " 4123: 'scala',\n", " 4208: 'scala',\n", " 4772: 'scala',\n", " 5584: 'scala',\n", " 5997: 'scala',\n", " 6009: 'scala',\n", " 6107: 'scala',\n", " 6147: 'scala',\n", " 6212: 'scala',\n", " 6464: 'scala',\n", " 7512: 'scala',\n", " 8012: 'scala',\n", " 9639: 'scala',\n", " 9859: 'scala',\n", " 9892: 'scala',\n", " 10314: 'scala',\n", " 10689: 'scala',\n", " 10793: 'scala',\n", " 10803: 'scala',\n", " 10838: 'scala',\n", " 11120: 'scala',\n", " 14279: 'scala',\n", " 14395: 'scala',\n", " 14564: 'scala',\n", " 14954: 'scala',\n", " 15015: 'scala',\n", " 15130: 'scala',\n", " 15244: 'scala',\n", " 15245: 'scala',\n", " 15729: 'scala',\n", " 16143: 'scala',\n", " 16176: 'scala',\n", " 17195: 'scala',\n", " 17513: 'scala',\n", " 17875: 'scala',\n", " 18215: 'scala',\n", " 18555: 'scala',\n", " 18963: 'scala',\n", " 19159: 'scala',\n", " 19182: 'scala',\n", " 19435: 'scala',\n", " 20171: 'scala',\n", " 21524: 'scala',\n", " 21895: 'scala',\n", " 21952: 'scala',\n", " 22346: 'scala',\n", " 22452: 'scala',\n", " 23455: 'scala',\n", " 24603: 'scala',\n", " 24722: 'scala',\n", " 24953: 'scala',\n", " 26836: 'scala',\n", " 27211: 'scala',\n", " 27491: 'scala',\n", " 28266: 'scala',\n", " 28642: 'scala',\n", " 28918: 'scala',\n", " 29136: 'scala',\n", " 30797: 'scala',\n", " 32554: 'scala',\n", " 33487: 'scala',\n", " 33554: 'scala',\n", " 33976: 'scala',\n", " 34321: 'scala',\n", " 34908: 'scala',\n", " 35163: 'scala',\n", " 35461: 'scala',\n", " 35869: 'scala',\n", " 36555: 'scala',\n", " 36732: 'scala',\n", " 37474: 'scala',\n", " 37587: 'scala',\n", " 38032: 'scala',\n", " 38534: 'scala',\n", " 39214: 'scala',\n", " 40086: 'scala',\n", " 40640: 'scala',\n", " 41620: 'scala',\n", " 41486: 'scala',\n", " 23610: 'scala',\n", " 19594: 'scala',\n", " 5564: 'scala',\n", " 37765: 'scala',\n", " 20194: 'scala',\n", " 4935: 'scala',\n", " 6758: 'scala',\n", " 21648: 'scala',\n", " 15014: 'scala',\n", " 31411: 'scala',\n", " 3049: 'scala',\n", " 24686: 'scala',\n", " 29783: 'scala',\n", " 30300: 'scala',\n", " 2272: 'scala',\n", " 18229: 'scala',\n", " 20270: 'scala',\n", " 26081: 'scala',\n", " 26919: 'scala',\n", " 27129: 'scala',\n", " ...},\n", " 'project_name': {14351: 'winjs',\n", " 40943: 'winjs',\n", " 35890: 'winjs',\n", " 1800: 'winjs',\n", " 20245: 'winjs',\n", " 29167: 'winjs',\n", " 4780: 'winjs',\n", " 5142: 'winjs',\n", " 7862: 'winjs',\n", " 32077: 'winjs',\n", " 535: 'winjs',\n", " 2368: 'winjs',\n", " 3644: 'winjs',\n", " 6174: 'winjs',\n", " 9288: 'winjs',\n", " 9851: 'winjs',\n", " 14019: 'winjs',\n", " 17979: 'winjs',\n", " 20726: 'winjs',\n", " 25046: 'winjs',\n", " 28071: 'winjs',\n", " 28507: 'winjs',\n", " 29869: 'winjs',\n", " 34060: 'winjs',\n", " 34065: 'winjs',\n", " 39071: 'winjs',\n", " 854: 'typescript-node-definitions',\n", " 14874: 'typescript-node-definitions',\n", " 1860: 'typescript-node-definitions',\n", " 3667: 'typescript-node-definitions',\n", " 4370: 'typescript-node-definitions',\n", " 4815: 'typescript-node-definitions',\n", " 8702: 'typescript-node-definitions',\n", " 8937: 'typescript-node-definitions',\n", " 12216: 'typescript-node-definitions',\n", " 12674: 'typescript-node-definitions',\n", " 24329: 'typescript-node-definitions',\n", " 27932: 'typescript-node-definitions',\n", " 34233: 'typescript-node-definitions',\n", " 37983: 'typescript-node-definitions',\n", " 38922: 'typescript-node-definitions',\n", " 39249: 'typescript-node-definitions',\n", " 2131: 'turbulenz_engine',\n", " 32309: 'turbulenz_engine',\n", " 32557: 'turbulenz_engine',\n", " 4249: 'tsd',\n", " 35078: 'tsd',\n", " 40918: 'tsd',\n", " 4628: 'tsd',\n", " 6163: 'tsd',\n", " 19480: 'tsd',\n", " 28014: 'tsd',\n", " 1465: 'tsd',\n", " 4491: 'tsd',\n", " 8228: 'tsd',\n", " 13271: 'tsd',\n", " 14337: 'tsd',\n", " 17756: 'tsd',\n", " 18359: 'tsd',\n", " 20548: 'tsd',\n", " 22726: 'tsd',\n", " 27413: 'tsd',\n", " 27831: 'tsd',\n", " 29199: 'tsd',\n", " 31193: 'tsd',\n", " 41245: 'tsd',\n", " 26242: 'trNgGrid',\n", " 9564: 'trNgGrid',\n", " 11313: 'trNgGrid',\n", " 28612: 'trNgGrid',\n", " 33920: 'trNgGrid',\n", " 12142: 'shumway',\n", " 21945: 'shumway',\n", " 2681: 'shumway',\n", " 35930: 'shumway',\n", " 2938: 'shumway',\n", " 29652: 'shumway',\n", " 35752: 'shumway',\n", " 39930: 'shumway',\n", " 2672: 'shumway',\n", " 5431: 'shumway',\n", " 7477: 'shumway',\n", " 7620: 'shumway',\n", " 10958: 'shumway',\n", " 11155: 'shumway',\n", " 11660: 'shumway',\n", " 13310: 'shumway',\n", " 13811: 'shumway',\n", " 16395: 'shumway',\n", " 18022: 'shumway',\n", " 18472: 'shumway',\n", " 23164: 'shumway',\n", " 26882: 'shumway',\n", " 29553: 'shumway',\n", " 30362: 'shumway',\n", " 30478: 'shumway',\n", " 33480: 'shumway',\n", " 35636: 'shumway',\n", " 35904: 'shumway',\n", " 38979: 'shumway',\n", " 3994: 'shellshape',\n", " 4812: 'shellshape',\n", " 17696: 'shellshape',\n", " 19075: 'shellshape',\n", " 19789: 'shellshape',\n", " 25409: 'shellshape',\n", " 31586: 'shellshape',\n", " 31940: 'shellshape',\n", " 32836: 'shellshape',\n", " 36545: 'shellshape',\n", " 38333: 'shellshape',\n", " 12063: 'reddcoin',\n", " 24217: 'reddcoin',\n", " 11670: 'reddcoin',\n", " 15277: 'reddcoin',\n", " 31244: 'reddcoin',\n", " 31667: 'reddcoin',\n", " 35068: 'reddcoin',\n", " 36274: 'reddcoin',\n", " 39993: 'primecoin',\n", " 18678: 'primecoin',\n", " 37326: 'primecoin',\n", " 15342: 'primecoin',\n", " 25235: 'primecoin',\n", " 29153: 'primecoin',\n", " 31694: 'primecoin',\n", " 29780: 'litecoin',\n", " 40003: 'litecoin',\n", " 3309: 'litecoin',\n", " 8441: 'litecoin',\n", " 12193: 'litecoin',\n", " 14382: 'litecoin',\n", " 14478: 'litecoin',\n", " 34893: 'litecoin',\n", " 41348: 'litecoin',\n", " 7332: 'litecoin',\n", " 11531: 'litecoin',\n", " 13342: 'litecoin',\n", " 16156: 'litecoin',\n", " 20393: 'litecoin',\n", " 20614: 'litecoin',\n", " 22498: 'litecoin',\n", " 26239: 'litecoin',\n", " 27240: 'litecoin',\n", " 28979: 'litecoin',\n", " 30062: 'litecoin',\n", " 32301: 'litecoin',\n", " 32479: 'litecoin',\n", " 34161: 'litecoin',\n", " 34546: 'litecoin',\n", " 39005: 'litecoin',\n", " 39750: 'litecoin',\n", " 40282: 'litecoin',\n", " 41814: 'litecoin',\n", " 8041: 'egret-core',\n", " 41987: 'egret-core',\n", " 18750: 'egret-core',\n", " 4447: 'egret-core',\n", " 6903: 'egret-core',\n", " 8578: 'egret-core',\n", " 12070: 'egret-core',\n", " 16325: 'egret-core',\n", " 19790: 'egret-core',\n", " 22746: 'egret-core',\n", " 23155: 'egret-core',\n", " 35582: 'egret-core',\n", " 39168: 'egret-core',\n", " 39989: 'egret-core',\n", " 41222: 'egret-core',\n", " 41923: 'egret-core',\n", " 20572: 'doppio',\n", " 15621: 'doppio',\n", " 29010: 'doppio',\n", " 41824: 'doppio',\n", " 1069: 'doppio',\n", " 5317: 'doppio',\n", " 11557: 'doppio',\n", " 12890: 'doppio',\n", " 14017: 'doppio',\n", " 16537: 'doppio',\n", " 24836: 'doppio',\n", " 29412: 'doppio',\n", " 29507: 'doppio',\n", " 31063: 'doppio',\n", " 40026: 'doppio',\n", " 3227: 'TypeScript',\n", " 18237: 'TypeScript',\n", " 40005: 'TypeScript',\n", " 929: 'TypeScript',\n", " 21101: 'TypeScript',\n", " 354: 'TypeScript',\n", " 2116: 'TypeScript',\n", " 6570: 'TypeScript',\n", " 15272: 'TypeScript',\n", " 6145: 'TypeScript',\n", " 29531: 'TypeScript',\n", " 23981: 'TypeScript',\n", " 9147: 'TypeScript',\n", " 39165: 'TypeScript',\n", " 10443: 'TypeScript',\n", " 16254: 'TypeScript',\n", " 25429: 'TypeScript',\n", " 39046: 'TypeScript',\n", " 10768: 'TypeScript',\n", " 24609: 'TypeScript',\n", " 33636: 'TypeScript',\n", " 35945: 'TypeScript',\n", " 40284: 'TypeScript',\n", " 41317: 'TypeScript',\n", " 10062: 'TypeScript',\n", " 11627: 'TypeScript',\n", " 18716: 'TypeScript',\n", " 21366: 'TypeScript',\n", " 27898: 'TypeScript',\n", " 28578: 'TypeScript',\n", " 29516: 'TypeScript',\n", " 34032: 'TypeScript',\n", " 40557: 'TypeScript',\n", " 2353: 'TypeScript',\n", " 6494: 'TypeScript',\n", " 8087: 'TypeScript',\n", " 12086: 'TypeScript',\n", " 13975: 'TypeScript',\n", " 14152: 'TypeScript',\n", " 15529: 'TypeScript',\n", " 16107: 'TypeScript',\n", " 20922: 'TypeScript',\n", " 26166: 'TypeScript',\n", " 27277: 'TypeScript',\n", " 28227: 'TypeScript',\n", " 28312: 'TypeScript',\n", " 29200: 'TypeScript',\n", " 33078: 'TypeScript',\n", " 39451: 'TypeScript',\n", " 41280: 'TypeScript',\n", " 430: 'TypeScript',\n", " 2542: 'TypeScript',\n", " 2812: 'TypeScript',\n", " 4629: 'TypeScript',\n", " 4937: 'TypeScript',\n", " 8823: 'TypeScript',\n", " 11962: 'TypeScript',\n", " 12041: 'TypeScript',\n", " 12717: 'TypeScript',\n", " 13291: 'TypeScript',\n", " 13427: 'TypeScript',\n", " 14746: 'TypeScript',\n", " 16120: 'TypeScript',\n", " 20357: 'TypeScript',\n", " 20551: 'TypeScript',\n", " 27272: 'TypeScript',\n", " 28638: 'TypeScript',\n", " 29524: 'TypeScript',\n", " 31344: 'TypeScript',\n", " 31641: 'TypeScript',\n", " 31734: 'TypeScript',\n", " 32074: 'TypeScript',\n", " 32193: 'TypeScript',\n", " 33829: 'TypeScript',\n", " 36412: 'TypeScript',\n", " 36777: 'TypeScript',\n", " 37257: 'TypeScript',\n", " 37266: 'TypeScript',\n", " 38129: 'TypeScript',\n", " 38170: 'TypeScript',\n", " 38690: 'TypeScript',\n", " 39504: 'TypeScript',\n", " 40592: 'TypeScript',\n", " 41818: 'TypeScript',\n", " 197: 'TypeScript',\n", " 1782: 'TypeScript',\n", " 2075: 'TypeScript',\n", " 3165: 'TypeScript',\n", " 3788: 'TypeScript',\n", " 3798: 'TypeScript',\n", " 4131: 'TypeScript',\n", " 4146: 'TypeScript',\n", " 4756: 'TypeScript',\n", " 4987: 'TypeScript',\n", " 5364: 'TypeScript',\n", " 5550: 'TypeScript',\n", " 5925: 'TypeScript',\n", " 6301: 'TypeScript',\n", " 6547: 'TypeScript',\n", " 8040: 'TypeScript',\n", " 8660: 'TypeScript',\n", " 9254: 'TypeScript',\n", " 9619: 'TypeScript',\n", " 11802: 'TypeScript',\n", " 12203: 'TypeScript',\n", " 12563: 'TypeScript',\n", " 12775: 'TypeScript',\n", " 13008: 'TypeScript',\n", " 13343: 'TypeScript',\n", " 13617: 'TypeScript',\n", " 14018: 'TypeScript',\n", " 14160: 'TypeScript',\n", " 14648: 'TypeScript',\n", " 15128: 'TypeScript',\n", " 15474: 'TypeScript',\n", " 15699: 'TypeScript',\n", " 16312: 'TypeScript',\n", " 16538: 'TypeScript',\n", " 17031: 'TypeScript',\n", " 17659: 'TypeScript',\n", " 17991: 'TypeScript',\n", " 18685: 'TypeScript',\n", " 19279: 'TypeScript',\n", " 19326: 'TypeScript',\n", " 19940: 'TypeScript',\n", " 20883: 'TypeScript',\n", " 20992: 'TypeScript',\n", " 21342: 'TypeScript',\n", " 21458: 'TypeScript',\n", " 22877: 'TypeScript',\n", " 22912: 'TypeScript',\n", " 23448: 'TypeScript',\n", " 23476: 'TypeScript',\n", " 23611: 'TypeScript',\n", " 24365: 'TypeScript',\n", " 24398: 'TypeScript',\n", " 24521: 'TypeScript',\n", " 24678: 'TypeScript',\n", " 25298: 'TypeScript',\n", " 25808: 'TypeScript',\n", " 25996: 'TypeScript',\n", " 28841: 'TypeScript',\n", " 29590: 'TypeScript',\n", " 29852: 'TypeScript',\n", " 29937: 'TypeScript',\n", " 30107: 'TypeScript',\n", " 30553: 'TypeScript',\n", " 30675: 'TypeScript',\n", " 30819: 'TypeScript',\n", " 31909: 'TypeScript',\n", " 33564: 'TypeScript',\n", " 34245: 'TypeScript',\n", " 35500: 'TypeScript',\n", " 36419: 'TypeScript',\n", " 36968: 'TypeScript',\n", " 38014: 'TypeScript',\n", " 38694: 'TypeScript',\n", " 39667: 'TypeScript',\n", " 12366: 'textteaser',\n", " 30943: 'textteaser',\n", " 10321: 'textteaser',\n", " 18803: 'textteaser',\n", " 507: 'textteaser',\n", " 4802: 'textteaser',\n", " 30714: 'textteaser',\n", " 37109: 'textteaser',\n", " 31265: 'swagger-core',\n", " 20512: 'swagger-core',\n", " 122: 'swagger-core',\n", " 462: 'swagger-core',\n", " 1139: 'swagger-core',\n", " 1468: 'swagger-core',\n", " 1819: 'swagger-core',\n", " 2149: 'swagger-core',\n", " 2873: 'swagger-core',\n", " 2876: 'swagger-core',\n", " 3499: 'swagger-core',\n", " 3850: 'swagger-core',\n", " 4101: 'swagger-core',\n", " 4281: 'swagger-core',\n", " 4408: 'swagger-core',\n", " 4414: 'swagger-core',\n", " 4570: 'swagger-core',\n", " 4692: 'swagger-core',\n", " 4710: 'swagger-core',\n", " 4809: 'swagger-core',\n", " 4881: 'swagger-core',\n", " 6011: 'swagger-core',\n", " 6071: 'swagger-core',\n", " 6263: 'swagger-core',\n", " 6526: 'swagger-core',\n", " 6928: 'swagger-core',\n", " 6949: 'swagger-core',\n", " 7378: 'swagger-core',\n", " 7461: 'swagger-core',\n", " 7695: 'swagger-core',\n", " 7849: 'swagger-core',\n", " 7868: 'swagger-core',\n", " 8358: 'swagger-core',\n", " 8704: 'swagger-core',\n", " 9543: 'swagger-core',\n", " 9621: 'swagger-core',\n", " 10127: 'swagger-core',\n", " 10274: 'swagger-core',\n", " 10275: 'swagger-core',\n", " 10548: 'swagger-core',\n", " 10728: 'swagger-core',\n", " 10826: 'swagger-core',\n", " 10837: 'swagger-core',\n", " 10882: 'swagger-core',\n", " 11348: 'swagger-core',\n", " 11838: 'swagger-core',\n", " 11973: 'swagger-core',\n", " 12959: 'swagger-core',\n", " 13323: 'swagger-core',\n", " 14120: 'swagger-core',\n", " 14128: 'swagger-core',\n", " 14182: 'swagger-core',\n", " 14661: 'swagger-core',\n", " 15515: 'swagger-core',\n", " 15847: 'swagger-core',\n", " 16063: 'swagger-core',\n", " 16835: 'swagger-core',\n", " 16981: 'swagger-core',\n", " 17168: 'swagger-core',\n", " 17231: 'swagger-core',\n", " 17422: 'swagger-core',\n", " 17489: 'swagger-core',\n", " 18825: 'swagger-core',\n", " 19072: 'swagger-core',\n", " 19118: 'swagger-core',\n", " 19156: 'swagger-core',\n", " 19572: 'swagger-core',\n", " 19748: 'swagger-core',\n", " 20124: 'swagger-core',\n", " 20237: 'swagger-core',\n", " 20457: 'swagger-core',\n", " 21179: 'swagger-core',\n", " 21228: 'swagger-core',\n", " 21252: 'swagger-core',\n", " 21624: 'swagger-core',\n", " 22099: 'swagger-core',\n", " 22148: 'swagger-core',\n", " 22556: 'swagger-core',\n", " 22993: 'swagger-core',\n", " 23425: 'swagger-core',\n", " 23429: 'swagger-core',\n", " 23687: 'swagger-core',\n", " 24093: 'swagger-core',\n", " 24265: 'swagger-core',\n", " 24276: 'swagger-core',\n", " 24549: 'swagger-core',\n", " 25105: 'swagger-core',\n", " 25490: 'swagger-core',\n", " 25616: 'swagger-core',\n", " 25649: 'swagger-core',\n", " 25972: 'swagger-core',\n", " 26045: 'swagger-core',\n", " 26629: 'swagger-core',\n", " 26636: 'swagger-core',\n", " 27299: 'swagger-core',\n", " 27592: 'swagger-core',\n", " 28459: 'swagger-core',\n", " 28585: 'swagger-core',\n", " 28653: 'swagger-core',\n", " 29086: 'swagger-core',\n", " 29298: 'swagger-core',\n", " 29435: 'swagger-core',\n", " 29899: 'swagger-core',\n", " 30053: 'swagger-core',\n", " 30070: 'swagger-core',\n", " 30144: 'swagger-core',\n", " 30383: 'swagger-core',\n", " 30802: 'swagger-core',\n", " 30921: 'swagger-core',\n", " 30997: 'swagger-core',\n", " 31677: 'swagger-core',\n", " 32097: 'swagger-core',\n", " 32111: 'swagger-core',\n", " 32113: 'swagger-core',\n", " 32201: 'swagger-core',\n", " 32243: 'swagger-core',\n", " 32279: 'swagger-core',\n", " 32666: 'swagger-core',\n", " 33159: 'swagger-core',\n", " 33253: 'swagger-core',\n", " 33848: 'swagger-core',\n", " 33856: 'swagger-core',\n", " 34009: 'swagger-core',\n", " 34028: 'swagger-core',\n", " 34112: 'swagger-core',\n", " 34394: 'swagger-core',\n", " 34497: 'swagger-core',\n", " 34662: 'swagger-core',\n", " 34703: 'swagger-core',\n", " 34809: 'swagger-core',\n", " 35193: 'swagger-core',\n", " 35354: 'swagger-core',\n", " 35376: 'swagger-core',\n", " 35725: 'swagger-core',\n", " 36673: 'swagger-core',\n", " 36774: 'swagger-core',\n", " 37011: 'swagger-core',\n", " 37140: 'swagger-core',\n", " 38132: 'swagger-core',\n", " 38234: 'swagger-core',\n", " 38373: 'swagger-core',\n", " 38513: 'swagger-core',\n", " 38995: 'swagger-core',\n", " 39642: 'swagger-core',\n", " 39688: 'swagger-core',\n", " 39692: 'swagger-core',\n", " 40100: 'swagger-core',\n", " 40837: 'swagger-core',\n", " 41224: 'swagger-core',\n", " 41974: 'swagger-core',\n", " 31654: 'summingbird',\n", " 2351: 'summingbird',\n", " 23016: 'summingbird',\n", " 40369: 'summingbird',\n", " 36508: 'summingbird',\n", " 40948: 'summingbird',\n", " 12501: 'summingbird',\n", " 5573: 'summingbird',\n", " 10374: 'summingbird',\n", " 28911: 'summingbird',\n", " 29639: 'summingbird',\n", " 33122: 'summingbird',\n", " 40504: 'summingbird',\n", " 28648: 'spray',\n", " 7860: 'spray',\n", " 6549: 'spray',\n", " 23186: 'spray',\n", " 23904: 'spray',\n", " 12450: 'spray',\n", " 20731: 'spray',\n", " 39334: 'spray',\n", " 5193: 'spray',\n", " 25197: 'spray',\n", " 36784: 'spray',\n", " 840: 'spray',\n", " 6622: 'spray',\n", " 14405: 'spray',\n", " 37170: 'spray',\n", " 1198: 'spray',\n", " 1521: 'spray',\n", " 4264: 'spray',\n", " 8205: 'spray',\n", " 9884: 'spray',\n", " 13190: 'spray',\n", " 13284: 'spray',\n", " 18718: 'spray',\n", " 18761: 'spray',\n", " 25123: 'spray',\n", " 25454: 'spray',\n", " 31235: 'spray',\n", " 38798: 'spray',\n", " 38868: 'spray',\n", " 39077: 'spray',\n", " 39338: 'spray',\n", " 40476: 'spray',\n", " 123: 'spray',\n", " 524: 'spray',\n", " 1741: 'spray',\n", " 1869: 'spray',\n", " 3600: 'spray',\n", " 4142: 'spray',\n", " 5226: 'spray',\n", " 6331: 'spray',\n", " 7608: 'spray',\n", " 7830: 'spray',\n", " 9390: 'spray',\n", " 16721: 'spray',\n", " 17229: 'spray',\n", " 17679: 'spray',\n", " 19214: 'spray',\n", " 19643: 'spray',\n", " 21572: 'spray',\n", " 25124: 'spray',\n", " 27508: 'spray',\n", " 28075: 'spray',\n", " 30516: 'spray',\n", " 32084: 'spray',\n", " 33038: 'spray',\n", " 34692: 'spray',\n", " 35165: 'spray',\n", " 39652: 'spray',\n", " 39757: 'spray',\n", " 4861: 'snowplow',\n", " 14075: 'snowplow',\n", " 16237: 'snowplow',\n", " 16501: 'snowplow',\n", " 3099: 'snowplow',\n", " 10072: 'snowplow',\n", " 11486: 'snowplow',\n", " 15705: 'snowplow',\n", " 29790: 'snowplow',\n", " 34589: 'snowplow',\n", " 34939: 'snowplow',\n", " 4402: 'snowplow',\n", " 8430: 'snowplow',\n", " 9531: 'snowplow',\n", " 9549: 'snowplow',\n", " 13976: 'snowplow',\n", " 14403: 'snowplow',\n", " 15660: 'snowplow',\n", " 17385: 'snowplow',\n", " 20910: 'snowplow',\n", " 20929: 'snowplow',\n", " 21167: 'snowplow',\n", " 25492: 'snowplow',\n", " 26085: 'snowplow',\n", " 26575: 'snowplow',\n", " 27582: 'snowplow',\n", " 33415: 'snowplow',\n", " 35647: 'snowplow',\n", " 35974: 'snowplow',\n", " 12667: 'scalding',\n", " 565: 'scalding',\n", " 1692: 'scalding',\n", " 21939: 'scalding',\n", " 4325: 'scalding',\n", " 35296: 'scalding',\n", " 1046: 'scalding',\n", " 14350: 'scalding',\n", " 30952: 'scalding',\n", " 826: 'scalding',\n", " 10663: 'scalding',\n", " 21571: 'scalding',\n", " 22322: 'scalding',\n", " 29528: 'scalding',\n", " 35420: 'scalding',\n", " 38722: 'scalding',\n", " 1197: 'scalding',\n", " 16573: 'scalding',\n", " 23870: 'scalding',\n", " 24260: 'scalding',\n", " 24900: 'scalding',\n", " 31035: 'scalding',\n", " 31200: 'scalding',\n", " 35059: 'scalding',\n", " 35602: 'scalding',\n", " 40091: 'scalding',\n", " 2364: 'scalding',\n", " 5998: 'scalding',\n", " 11123: 'scalding',\n", " 15465: 'scalding',\n", " 17035: 'scalding',\n", " 18943: 'scalding',\n", " 20113: 'scalding',\n", " 21964: 'scalding',\n", " 22939: 'scalding',\n", " 23562: 'scalding',\n", " 25949: 'scalding',\n", " 27285: 'scalding',\n", " 29152: 'scalding',\n", " 33066: 'scalding',\n", " 33577: 'scalding',\n", " 35639: 'scalding',\n", " 38345: 'scalding',\n", " 1565: 'scalding',\n", " 2355: 'scalding',\n", " 2531: 'scalding',\n", " 7783: 'scalding',\n", " 8633: 'scalding',\n", " 9603: 'scalding',\n", " 10667: 'scalding',\n", " 11758: 'scalding',\n", " 12705: 'scalding',\n", " 13603: 'scalding',\n", " 16218: 'scalding',\n", " 19260: 'scalding',\n", " 19327: 'scalding',\n", " 19774: 'scalding',\n", " 20713: 'scalding',\n", " 22041: 'scalding',\n", " 25332: 'scalding',\n", " 27515: 'scalding',\n", " 28837: 'scalding',\n", " 30282: 'scalding',\n", " 30583: 'scalding',\n", " 31010: 'scalding',\n", " 31327: 'scalding',\n", " 31828: 'scalding',\n", " 32047: 'scalding',\n", " 32693: 'scalding',\n", " 36064: 'scalding',\n", " 36372: 'scalding',\n", " 38088: 'scalding',\n", " 39481: 'scalding',\n", " 39538: 'scalding',\n", " 40280: 'scalding',\n", " 6310: 'scalaz',\n", " 3719: 'scalaz',\n", " 11933: 'scalaz',\n", " 2418: 'scalaz',\n", " 10488: 'scalaz',\n", " 10694: 'scalaz',\n", " 16709: 'scalaz',\n", " 17666: 'scalaz',\n", " 20541: 'scalaz',\n", " 10425: 'scalaz',\n", " 11811: 'scalaz',\n", " 20412: 'scalaz',\n", " 25681: 'scalaz',\n", " 26340: 'scalaz',\n", " 27991: 'scalaz',\n", " 32627: 'scalaz',\n", " 983: 'scalaz',\n", " 3944: 'scalaz',\n", " 7197: 'scalaz',\n", " 7408: 'scalaz',\n", " 9727: 'scalaz',\n", " 20692: 'scalaz',\n", " 22084: 'scalaz',\n", " 22648: 'scalaz',\n", " 23912: 'scalaz',\n", " 25462: 'scalaz',\n", " 25463: 'scalaz',\n", " 28007: 'scalaz',\n", " 30461: 'scalaz',\n", " 31605: 'scalaz',\n", " 32218: 'scalaz',\n", " 32718: 'scalaz',\n", " 36258: 'scalaz',\n", " 37067: 'scalaz',\n", " 1288: 'scalaz',\n", " 2548: 'scalaz',\n", " 2875: 'scalaz',\n", " 3821: 'scalaz',\n", " 4104: 'scalaz',\n", " 4701: 'scalaz',\n", " 5381: 'scalaz',\n", " 5424: 'scalaz',\n", " 6592: 'scalaz',\n", " 7918: 'scalaz',\n", " 9247: 'scalaz',\n", " 9281: 'scalaz',\n", " 11757: 'scalaz',\n", " 11783: 'scalaz',\n", " 14168: 'scalaz',\n", " 16137: 'scalaz',\n", " 16212: 'scalaz',\n", " 16258: 'scalaz',\n", " 17695: 'scalaz',\n", " 18401: 'scalaz',\n", " 19617: 'scalaz',\n", " 19757: 'scalaz',\n", " 20022: 'scalaz',\n", " 20568: 'scalaz',\n", " 21429: 'scalaz',\n", " 21841: 'scalaz',\n", " 23287: 'scalaz',\n", " 24024: 'scalaz',\n", " 25023: 'scalaz',\n", " 25431: 'scalaz',\n", " 25457: 'scalaz',\n", " 25683: 'scalaz',\n", " 25941: 'scalaz',\n", " 26452: 'scalaz',\n", " 26985: 'scalaz',\n", " 27181: 'scalaz',\n", " 27284: 'scalaz',\n", " 27700: 'scalaz',\n", " 28197: 'scalaz',\n", " 28886: 'scalaz',\n", " 29587: 'scalaz',\n", " 29778: 'scalaz',\n", " 30259: 'scalaz',\n", " 30515: 'scalaz',\n", " 31249: 'scalaz',\n", " 31402: 'scalaz',\n", " 31760: 'scalaz',\n", " 32091: 'scalaz',\n", " 32169: 'scalaz',\n", " 34049: 'scalaz',\n", " 34449: 'scalaz',\n", " 35009: 'scalaz',\n", " 36610: 'scalaz',\n", " 37777: 'scalaz',\n", " 38282: 'scalaz',\n", " 38535: 'scalaz',\n", " 39818: 'scalaz',\n", " 41124: 'scalaz',\n", " 17228: 'scalatra',\n", " 6010: 'scalatra',\n", " 22982: 'scalatra',\n", " 23269: 'scalatra',\n", " 32320: 'scalatra',\n", " 39238: 'scalatra',\n", " 11661: 'scalatra',\n", " 18328: 'scalatra',\n", " 34648: 'scalatra',\n", " 35164: 'scalatra',\n", " 41253: 'scalatra',\n", " 898: 'scalatra',\n", " 2178: 'scalatra',\n", " 6633: 'scalatra',\n", " 11828: 'scalatra',\n", " 15352: 'scalatra',\n", " 24104: 'scalatra',\n", " 24813: 'scalatra',\n", " 27736: 'scalatra',\n", " 29366: 'scalatra',\n", " 36257: 'scalatra',\n", " 37295: 'scalatra',\n", " 313: 'scalatra',\n", " 2049: 'scalatra',\n", " 2437: 'scalatra',\n", " 2547: 'scalatra',\n", " 2688: 'scalatra',\n", " 2874: 'scalatra',\n", " 3231: 'scalatra',\n", " 3487: 'scalatra',\n", " 8093: 'scalatra',\n", " 8785: 'scalatra',\n", " 10320: 'scalatra',\n", " 10591: 'scalatra',\n", " 11300: 'scalatra',\n", " 12020: 'scalatra',\n", " 12365: 'scalatra',\n", " 14016: 'scalatra',\n", " 15786: 'scalatra',\n", " 17874: 'scalatra',\n", " 19029: 'scalatra',\n", " 19436: 'scalatra',\n", " 22091: 'scalatra',\n", " 23478: 'scalatra',\n", " 25022: 'scalatra',\n", " 25637: 'scalatra',\n", " 25777: 'scalatra',\n", " 26082: 'scalatra',\n", " 26195: 'scalatra',\n", " 27890: 'scalatra',\n", " 28528: 'scalatra',\n", " 29853: 'scalatra',\n", " 30339: 'scalatra',\n", " 31713: 'scalatra',\n", " 32173: 'scalatra',\n", " 33121: 'scalatra',\n", " 33297: 'scalatra',\n", " 35336: 'scalatra',\n", " 36580: 'scalatra',\n", " 39320: 'scalatra',\n", " 41247: 'scalatra',\n", " 28671: 'scala-js',\n", " 26850: 'scala-js',\n", " 26616: 'scala-js',\n", " 14338: 'scala-js',\n", " 1421: 'scala-js',\n", " 10561: 'scala-js',\n", " 11000: 'scala-js',\n", " 12517: 'scala-js',\n", " 15469: 'scala-js',\n", " 20016: 'scala-js',\n", " 24130: 'scala-js',\n", " 25963: 'scala-js',\n", " 29033: 'scala-js',\n", " 35622: 'scala-js',\n", " 38051: 'scala-js',\n", " 38465: 'scala-js',\n", " 39740: 'scala-js',\n", " 3448: 'scala-js',\n", " 3489: 'scala-js',\n", " 6804: 'scala-js',\n", " 7634: 'scala-js',\n", " 9246: 'scala-js',\n", " 10720: 'scala-js',\n", " 13198: 'scala-js',\n", " 14873: 'scala-js',\n", " 16720: 'scala-js',\n", " 17233: 'scala-js',\n", " 18438: 'scala-js',\n", " 26984: 'scala-js',\n", " 28836: 'scala-js',\n", " 29373: 'scala-js',\n", " 29876: 'scala-js',\n", " 40768: 'scala-js',\n", " 12057: 'sbt',\n", " 33654: 'sbt',\n", " 40806: 'sbt',\n", " 11944: 'sbt',\n", " 39098: 'sbt',\n", " 3364: 'sbt',\n", " 29022: 'sbt',\n", " 5225: 'sbt',\n", " 29608: 'sbt',\n", " 39654: 'sbt',\n", " 10254: 'sbt',\n", " 37042: 'sbt',\n", " 15347: 'sbt',\n", " 17043: 'sbt',\n", " 22938: 'sbt',\n", " 28597: 'sbt',\n", " 782: 'sbt',\n", " 3050: 'sbt',\n", " 3421: 'sbt',\n", " 9023: 'sbt',\n", " 17382: 'sbt',\n", " 18793: 'sbt',\n", " 19278: 'sbt',\n", " 21762: 'sbt',\n", " 22647: 'sbt',\n", " 25072: 'sbt',\n", " 34229: 'sbt',\n", " 38021: 'sbt',\n", " 39741: 'sbt',\n", " 39823: 'sbt',\n", " 87: 'sbt',\n", " 585: 'sbt',\n", " 849: 'sbt',\n", " 1464: 'sbt',\n", " 1740: 'sbt',\n", " 2009: 'sbt',\n", " 3062: 'sbt',\n", " 3651: 'sbt',\n", " 4123: 'sbt',\n", " 4208: 'sbt',\n", " 4772: 'sbt',\n", " 5584: 'sbt',\n", " 5997: 'sbt',\n", " 6009: 'sbt',\n", " 6107: 'sbt',\n", " 6147: 'sbt',\n", " 6212: 'sbt',\n", " 6464: 'sbt',\n", " 7512: 'sbt',\n", " 8012: 'sbt',\n", " 9639: 'sbt',\n", " 9859: 'sbt',\n", " 9892: 'sbt',\n", " 10314: 'sbt',\n", " 10689: 'sbt',\n", " 10793: 'sbt',\n", " 10803: 'sbt',\n", " 10838: 'sbt',\n", " 11120: 'sbt',\n", " 14279: 'sbt',\n", " 14395: 'sbt',\n", " 14564: 'sbt',\n", " 14954: 'sbt',\n", " 15015: 'sbt',\n", " 15130: 'sbt',\n", " 15244: 'sbt',\n", " 15245: 'sbt',\n", " 15729: 'sbt',\n", " 16143: 'sbt',\n", " 16176: 'sbt',\n", " 17195: 'sbt',\n", " 17513: 'sbt',\n", " 17875: 'sbt',\n", " 18215: 'sbt',\n", " 18555: 'sbt',\n", " 18963: 'sbt',\n", " 19159: 'sbt',\n", " 19182: 'sbt',\n", " 19435: 'sbt',\n", " 20171: 'sbt',\n", " 21524: 'sbt',\n", " 21895: 'sbt',\n", " 21952: 'sbt',\n", " 22346: 'sbt',\n", " 22452: 'sbt',\n", " 23455: 'sbt',\n", " 24603: 'sbt',\n", " 24722: 'sbt',\n", " 24953: 'sbt',\n", " 26836: 'sbt',\n", " 27211: 'sbt',\n", " 27491: 'sbt',\n", " 28266: 'sbt',\n", " 28642: 'sbt',\n", " 28918: 'sbt',\n", " 29136: 'sbt',\n", " 30797: 'sbt',\n", " 32554: 'sbt',\n", " 33487: 'sbt',\n", " 33554: 'sbt',\n", " 33976: 'sbt',\n", " 34321: 'sbt',\n", " 34908: 'sbt',\n", " 35163: 'sbt',\n", " 35461: 'sbt',\n", " 35869: 'sbt',\n", " 36555: 'sbt',\n", " 36732: 'sbt',\n", " 37474: 'sbt',\n", " 37587: 'sbt',\n", " 38032: 'sbt',\n", " 38534: 'sbt',\n", " 39214: 'sbt',\n", " 40086: 'sbt',\n", " 40640: 'sbt',\n", " 41620: 'sbt',\n", " 41486: 'playframework',\n", " 23610: 'playframework',\n", " 19594: 'playframework',\n", " 5564: 'playframework',\n", " 37765: 'playframework',\n", " 20194: 'playframework',\n", " 4935: 'playframework',\n", " 6758: 'playframework',\n", " 21648: 'playframework',\n", " 15014: 'playframework',\n", " 31411: 'playframework',\n", " 3049: 'playframework',\n", " 24686: 'playframework',\n", " 29783: 'playframework',\n", " 30300: 'playframework',\n", " 2272: 'playframework',\n", " 18229: 'playframework',\n", " 20270: 'playframework',\n", " 26081: 'playframework',\n", " 26919: 'playframework',\n", " 27129: 'playframework',\n", " ...},\n", " 'num_commits': {14351: 11,\n", " 40943: 10,\n", " 35890: 6,\n", " 1800: 3,\n", " 20245: 3,\n", " 29167: 3,\n", " 4780: 2,\n", " 5142: 2,\n", " 7862: 2,\n", " 32077: 2,\n", " 535: 1,\n", " 2368: 1,\n", " 3644: 1,\n", " 6174: 1,\n", " 9288: 1,\n", " 9851: 1,\n", " 14019: 1,\n", " 17979: 1,\n", " 20726: 1,\n", " 25046: 1,\n", " 28071: 1,\n", " 28507: 1,\n", " 29869: 1,\n", " 34060: 1,\n", " 34065: 1,\n", " 39071: 1,\n", " 854: 6,\n", " 14874: 2,\n", " 1860: 1,\n", " 3667: 1,\n", " 4370: 1,\n", " 4815: 1,\n", " 8702: 1,\n", " 8937: 1,\n", " 12216: 1,\n", " 12674: 1,\n", " 24329: 1,\n", " 27932: 1,\n", " 34233: 1,\n", " 37983: 1,\n", " 38922: 1,\n", " 39249: 1,\n", " 2131: 1,\n", " 32309: 1,\n", " 32557: 1,\n", " 4249: 3,\n", " 35078: 3,\n", " 40918: 3,\n", " 4628: 2,\n", " 6163: 2,\n", " 19480: 2,\n", " 28014: 2,\n", " 1465: 1,\n", " 4491: 1,\n", " 8228: 1,\n", " 13271: 1,\n", " 14337: 1,\n", " 17756: 1,\n", " 18359: 1,\n", " 20548: 1,\n", " 22726: 1,\n", " 27413: 1,\n", " 27831: 1,\n", " 29199: 1,\n", " 31193: 1,\n", " 41245: 1,\n", " 26242: 6,\n", " 9564: 1,\n", " 11313: 1,\n", " 28612: 1,\n", " 33920: 1,\n", " 12142: 250,\n", " 21945: 7,\n", " 2681: 3,\n", " 35930: 3,\n", " 2938: 2,\n", " 29652: 2,\n", " 35752: 2,\n", " 39930: 2,\n", " 2672: 1,\n", " 5431: 1,\n", " 7477: 1,\n", " 7620: 1,\n", " 10958: 1,\n", " 11155: 1,\n", " 11660: 1,\n", " 13310: 1,\n", " 13811: 1,\n", " 16395: 1,\n", " 18022: 1,\n", " 18472: 1,\n", " 23164: 1,\n", " 26882: 1,\n", " 29553: 1,\n", " 30362: 1,\n", " 30478: 1,\n", " 33480: 1,\n", " 35636: 1,\n", " 35904: 1,\n", " 38979: 1,\n", " 3994: 1,\n", " 4812: 1,\n", " 17696: 1,\n", " 19075: 1,\n", " 19789: 1,\n", " 25409: 1,\n", " 31586: 1,\n", " 31940: 1,\n", " 32836: 1,\n", " 36545: 1,\n", " 38333: 1,\n", " 12063: 2,\n", " 24217: 2,\n", " 11670: 1,\n", " 15277: 1,\n", " 31244: 1,\n", " 31667: 1,\n", " 35068: 1,\n", " 36274: 1,\n", " 39993: 250,\n", " 18678: 2,\n", " 37326: 2,\n", " 15342: 1,\n", " 25235: 1,\n", " 29153: 1,\n", " 31694: 1,\n", " 29780: 5,\n", " 40003: 5,\n", " 3309: 2,\n", " 8441: 2,\n", " 12193: 2,\n", " 14382: 2,\n", " 14478: 2,\n", " 34893: 2,\n", " 41348: 2,\n", " 7332: 1,\n", " 11531: 1,\n", " 13342: 1,\n", " 16156: 1,\n", " 20393: 1,\n", " 20614: 1,\n", " 22498: 1,\n", " 26239: 1,\n", " 27240: 1,\n", " 28979: 1,\n", " 30062: 1,\n", " 32301: 1,\n", " 32479: 1,\n", " 34161: 1,\n", " 34546: 1,\n", " 39005: 1,\n", " 39750: 1,\n", " 40282: 1,\n", " 41814: 1,\n", " 8041: 9,\n", " 41987: 4,\n", " 18750: 2,\n", " 4447: 1,\n", " 6903: 1,\n", " 8578: 1,\n", " 12070: 1,\n", " 16325: 1,\n", " 19790: 1,\n", " 22746: 1,\n", " 23155: 1,\n", " 35582: 1,\n", " 39168: 1,\n", " 39989: 1,\n", " 41222: 1,\n", " 41923: 1,\n", " 20572: 11,\n", " 15621: 2,\n", " 29010: 2,\n", " 41824: 2,\n", " 1069: 1,\n", " 5317: 1,\n", " 11557: 1,\n", " 12890: 1,\n", " 14017: 1,\n", " 16537: 1,\n", " 24836: 1,\n", " 29412: 1,\n", " 29507: 1,\n", " 31063: 1,\n", " 40026: 1,\n", " 3227: 250,\n", " 18237: 120,\n", " 40005: 44,\n", " 929: 19,\n", " 21101: 18,\n", " 354: 17,\n", " 2116: 15,\n", " 6570: 12,\n", " 15272: 12,\n", " 6145: 11,\n", " 29531: 11,\n", " 23981: 9,\n", " 9147: 8,\n", " 39165: 8,\n", " 10443: 7,\n", " 16254: 7,\n", " 25429: 6,\n", " 39046: 6,\n", " 10768: 5,\n", " 24609: 5,\n", " 33636: 5,\n", " 35945: 5,\n", " 40284: 5,\n", " 41317: 5,\n", " 10062: 4,\n", " 11627: 4,\n", " 18716: 4,\n", " 21366: 4,\n", " 27898: 4,\n", " 28578: 4,\n", " 29516: 4,\n", " 34032: 4,\n", " 40557: 4,\n", " 2353: 3,\n", " 6494: 3,\n", " 8087: 3,\n", " 12086: 3,\n", " 13975: 3,\n", " 14152: 3,\n", " 15529: 3,\n", " 16107: 3,\n", " 20922: 3,\n", " 26166: 3,\n", " 27277: 3,\n", " 28227: 3,\n", " 28312: 3,\n", " 29200: 3,\n", " 33078: 3,\n", " 39451: 3,\n", " 41280: 3,\n", " 430: 2,\n", " 2542: 2,\n", " 2812: 2,\n", " 4629: 2,\n", " 4937: 2,\n", " 8823: 2,\n", " 11962: 2,\n", " 12041: 2,\n", " 12717: 2,\n", " 13291: 2,\n", " 13427: 2,\n", " 14746: 2,\n", " 16120: 2,\n", " 20357: 2,\n", " 20551: 2,\n", " 27272: 2,\n", " 28638: 2,\n", " 29524: 2,\n", " 31344: 2,\n", " 31641: 2,\n", " 31734: 2,\n", " 32074: 2,\n", " 32193: 2,\n", " 33829: 2,\n", " 36412: 2,\n", " 36777: 2,\n", " 37257: 2,\n", " 37266: 2,\n", " 38129: 2,\n", " 38170: 2,\n", " 38690: 2,\n", " 39504: 2,\n", " 40592: 2,\n", " 41818: 2,\n", " 197: 1,\n", " 1782: 1,\n", " 2075: 1,\n", " 3165: 1,\n", " 3788: 1,\n", " 3798: 1,\n", " 4131: 1,\n", " 4146: 1,\n", " 4756: 1,\n", " 4987: 1,\n", " 5364: 1,\n", " 5550: 1,\n", " 5925: 1,\n", " 6301: 1,\n", " 6547: 1,\n", " 8040: 1,\n", " 8660: 1,\n", " 9254: 1,\n", " 9619: 1,\n", " 11802: 1,\n", " 12203: 1,\n", " 12563: 1,\n", " 12775: 1,\n", " 13008: 1,\n", " 13343: 1,\n", " 13617: 1,\n", " 14018: 1,\n", " 14160: 1,\n", " 14648: 1,\n", " 15128: 1,\n", " 15474: 1,\n", " 15699: 1,\n", " 16312: 1,\n", " 16538: 1,\n", " 17031: 1,\n", " 17659: 1,\n", " 17991: 1,\n", " 18685: 1,\n", " 19279: 1,\n", " 19326: 1,\n", " 19940: 1,\n", " 20883: 1,\n", " 20992: 1,\n", " 21342: 1,\n", " 21458: 1,\n", " 22877: 1,\n", " 22912: 1,\n", " 23448: 1,\n", " 23476: 1,\n", " 23611: 1,\n", " 24365: 1,\n", " 24398: 1,\n", " 24521: 1,\n", " 24678: 1,\n", " 25298: 1,\n", " 25808: 1,\n", " 25996: 1,\n", " 28841: 1,\n", " 29590: 1,\n", " 29852: 1,\n", " 29937: 1,\n", " 30107: 1,\n", " 30553: 1,\n", " 30675: 1,\n", " 30819: 1,\n", " 31909: 1,\n", " 33564: 1,\n", " 34245: 1,\n", " 35500: 1,\n", " 36419: 1,\n", " 36968: 1,\n", " 38014: 1,\n", " 38694: 1,\n", " 39667: 1,\n", " 12366: 6,\n", " 30943: 4,\n", " 10321: 2,\n", " 18803: 2,\n", " 507: 1,\n", " 4802: 1,\n", " 30714: 1,\n", " 37109: 1,\n", " 31265: 3,\n", " 20512: 2,\n", " 122: 1,\n", " 462: 1,\n", " 1139: 1,\n", " 1468: 1,\n", " 1819: 1,\n", " 2149: 1,\n", " 2873: 1,\n", " 2876: 1,\n", " 3499: 1,\n", " 3850: 1,\n", " 4101: 1,\n", " 4281: 1,\n", " 4408: 1,\n", " 4414: 1,\n", " 4570: 1,\n", " 4692: 1,\n", " 4710: 1,\n", " 4809: 1,\n", " 4881: 1,\n", " 6011: 1,\n", " 6071: 1,\n", " 6263: 1,\n", " 6526: 1,\n", " 6928: 1,\n", " 6949: 1,\n", " 7378: 1,\n", " 7461: 1,\n", " 7695: 1,\n", " 7849: 1,\n", " 7868: 1,\n", " 8358: 1,\n", " 8704: 1,\n", " 9543: 1,\n", " 9621: 1,\n", " 10127: 1,\n", " 10274: 1,\n", " 10275: 1,\n", " 10548: 1,\n", " 10728: 1,\n", " 10826: 1,\n", " 10837: 1,\n", " 10882: 1,\n", " 11348: 1,\n", " 11838: 1,\n", " 11973: 1,\n", " 12959: 1,\n", " 13323: 1,\n", " 14120: 1,\n", " 14128: 1,\n", " 14182: 1,\n", " 14661: 1,\n", " 15515: 1,\n", " 15847: 1,\n", " 16063: 1,\n", " 16835: 1,\n", " 16981: 1,\n", " 17168: 1,\n", " 17231: 1,\n", " 17422: 1,\n", " 17489: 1,\n", " 18825: 1,\n", " 19072: 1,\n", " 19118: 1,\n", " 19156: 1,\n", " 19572: 1,\n", " 19748: 1,\n", " 20124: 1,\n", " 20237: 1,\n", " 20457: 1,\n", " 21179: 1,\n", " 21228: 1,\n", " 21252: 1,\n", " 21624: 1,\n", " 22099: 1,\n", " 22148: 1,\n", " 22556: 1,\n", " 22993: 1,\n", " 23425: 1,\n", " 23429: 1,\n", " 23687: 1,\n", " 24093: 1,\n", " 24265: 1,\n", " 24276: 1,\n", " 24549: 1,\n", " 25105: 1,\n", " 25490: 1,\n", " 25616: 1,\n", " 25649: 1,\n", " 25972: 1,\n", " 26045: 1,\n", " 26629: 1,\n", " 26636: 1,\n", " 27299: 1,\n", " 27592: 1,\n", " 28459: 1,\n", " 28585: 1,\n", " 28653: 1,\n", " 29086: 1,\n", " 29298: 1,\n", " 29435: 1,\n", " 29899: 1,\n", " 30053: 1,\n", " 30070: 1,\n", " 30144: 1,\n", " 30383: 1,\n", " 30802: 1,\n", " 30921: 1,\n", " 30997: 1,\n", " 31677: 1,\n", " 32097: 1,\n", " 32111: 1,\n", " 32113: 1,\n", " 32201: 1,\n", " 32243: 1,\n", " 32279: 1,\n", " 32666: 1,\n", " 33159: 1,\n", " 33253: 1,\n", " 33848: 1,\n", " 33856: 1,\n", " 34009: 1,\n", " 34028: 1,\n", " 34112: 1,\n", " 34394: 1,\n", " 34497: 1,\n", " 34662: 1,\n", " 34703: 1,\n", " 34809: 1,\n", " 35193: 1,\n", " 35354: 1,\n", " 35376: 1,\n", " 35725: 1,\n", " 36673: 1,\n", " 36774: 1,\n", " 37011: 1,\n", " 37140: 1,\n", " 38132: 1,\n", " 38234: 1,\n", " 38373: 1,\n", " 38513: 1,\n", " 38995: 1,\n", " 39642: 1,\n", " 39688: 1,\n", " 39692: 1,\n", " 40100: 1,\n", " 40837: 1,\n", " 41224: 1,\n", " 41974: 1,\n", " 31654: 8,\n", " 2351: 6,\n", " 23016: 6,\n", " 40369: 5,\n", " 36508: 3,\n", " 40948: 3,\n", " 12501: 2,\n", " 5573: 1,\n", " 10374: 1,\n", " 28911: 1,\n", " 29639: 1,\n", " 33122: 1,\n", " 40504: 1,\n", " 28648: 23,\n", " 7860: 20,\n", " 6549: 8,\n", " 23186: 8,\n", " 23904: 7,\n", " 12450: 6,\n", " 20731: 6,\n", " 39334: 5,\n", " 5193: 4,\n", " 25197: 4,\n", " 36784: 4,\n", " 840: 3,\n", " 6622: 3,\n", " 14405: 3,\n", " 37170: 3,\n", " 1198: 2,\n", " 1521: 2,\n", " 4264: 2,\n", " 8205: 2,\n", " 9884: 2,\n", " 13190: 2,\n", " 13284: 2,\n", " 18718: 2,\n", " 18761: 2,\n", " 25123: 2,\n", " 25454: 2,\n", " 31235: 2,\n", " 38798: 2,\n", " 38868: 2,\n", " 39077: 2,\n", " 39338: 2,\n", " 40476: 2,\n", " 123: 1,\n", " 524: 1,\n", " 1741: 1,\n", " 1869: 1,\n", " 3600: 1,\n", " 4142: 1,\n", " 5226: 1,\n", " 6331: 1,\n", " 7608: 1,\n", " 7830: 1,\n", " 9390: 1,\n", " 16721: 1,\n", " 17229: 1,\n", " 17679: 1,\n", " 19214: 1,\n", " 19643: 1,\n", " 21572: 1,\n", " 25124: 1,\n", " 27508: 1,\n", " 28075: 1,\n", " 30516: 1,\n", " 32084: 1,\n", " 33038: 1,\n", " 34692: 1,\n", " 35165: 1,\n", " 39652: 1,\n", " 39757: 1,\n", " 4861: 16,\n", " 14075: 15,\n", " 16237: 6,\n", " 16501: 4,\n", " 3099: 2,\n", " 10072: 2,\n", " 11486: 2,\n", " 15705: 2,\n", " 29790: 2,\n", " 34589: 2,\n", " 34939: 2,\n", " 4402: 1,\n", " 8430: 1,\n", " 9531: 1,\n", " 9549: 1,\n", " 13976: 1,\n", " 14403: 1,\n", " 15660: 1,\n", " 17385: 1,\n", " 20910: 1,\n", " 20929: 1,\n", " 21167: 1,\n", " 25492: 1,\n", " 26085: 1,\n", " 26575: 1,\n", " 27582: 1,\n", " 33415: 1,\n", " 35647: 1,\n", " 35974: 1,\n", " 12667: 79,\n", " 565: 27,\n", " 1692: 21,\n", " 21939: 12,\n", " 4325: 10,\n", " 35296: 9,\n", " 1046: 7,\n", " 14350: 7,\n", " 30952: 7,\n", " 826: 6,\n", " 10663: 6,\n", " 21571: 5,\n", " 22322: 5,\n", " 29528: 5,\n", " 35420: 5,\n", " 38722: 4,\n", " 1197: 3,\n", " 16573: 3,\n", " 23870: 3,\n", " 24260: 3,\n", " 24900: 3,\n", " 31035: 3,\n", " 31200: 3,\n", " 35059: 3,\n", " 35602: 3,\n", " 40091: 3,\n", " 2364: 2,\n", " 5998: 2,\n", " 11123: 2,\n", " 15465: 2,\n", " 17035: 2,\n", " 18943: 2,\n", " 20113: 2,\n", " 21964: 2,\n", " 22939: 2,\n", " 23562: 2,\n", " 25949: 2,\n", " 27285: 2,\n", " 29152: 2,\n", " 33066: 2,\n", " 33577: 2,\n", " 35639: 2,\n", " 38345: 2,\n", " 1565: 1,\n", " 2355: 1,\n", " 2531: 1,\n", " 7783: 1,\n", " 8633: 1,\n", " 9603: 1,\n", " 10667: 1,\n", " 11758: 1,\n", " 12705: 1,\n", " 13603: 1,\n", " 16218: 1,\n", " 19260: 1,\n", " 19327: 1,\n", " 19774: 1,\n", " 20713: 1,\n", " 22041: 1,\n", " 25332: 1,\n", " 27515: 1,\n", " 28837: 1,\n", " 30282: 1,\n", " 30583: 1,\n", " 31010: 1,\n", " 31327: 1,\n", " 31828: 1,\n", " 32047: 1,\n", " 32693: 1,\n", " 36064: 1,\n", " 36372: 1,\n", " 38088: 1,\n", " 39481: 1,\n", " 39538: 1,\n", " 40280: 1,\n", " 6310: 250,\n", " 3719: 8,\n", " 11933: 8,\n", " 2418: 4,\n", " 10488: 4,\n", " 10694: 4,\n", " 16709: 4,\n", " 17666: 4,\n", " 20541: 4,\n", " 10425: 3,\n", " 11811: 3,\n", " 20412: 3,\n", " 25681: 3,\n", " 26340: 3,\n", " 27991: 3,\n", " 32627: 3,\n", " 983: 2,\n", " 3944: 2,\n", " 7197: 2,\n", " 7408: 2,\n", " 9727: 2,\n", " 20692: 2,\n", " 22084: 2,\n", " 22648: 2,\n", " 23912: 2,\n", " 25462: 2,\n", " 25463: 2,\n", " 28007: 2,\n", " 30461: 2,\n", " 31605: 2,\n", " 32218: 2,\n", " 32718: 2,\n", " 36258: 2,\n", " 37067: 2,\n", " 1288: 1,\n", " 2548: 1,\n", " 2875: 1,\n", " 3821: 1,\n", " 4104: 1,\n", " 4701: 1,\n", " 5381: 1,\n", " 5424: 1,\n", " 6592: 1,\n", " 7918: 1,\n", " 9247: 1,\n", " 9281: 1,\n", " 11757: 1,\n", " 11783: 1,\n", " 14168: 1,\n", " 16137: 1,\n", " 16212: 1,\n", " 16258: 1,\n", " 17695: 1,\n", " 18401: 1,\n", " 19617: 1,\n", " 19757: 1,\n", " 20022: 1,\n", " 20568: 1,\n", " 21429: 1,\n", " 21841: 1,\n", " 23287: 1,\n", " 24024: 1,\n", " 25023: 1,\n", " 25431: 1,\n", " 25457: 1,\n", " 25683: 1,\n", " 25941: 1,\n", " 26452: 1,\n", " 26985: 1,\n", " 27181: 1,\n", " 27284: 1,\n", " 27700: 1,\n", " 28197: 1,\n", " 28886: 1,\n", " 29587: 1,\n", " 29778: 1,\n", " 30259: 1,\n", " 30515: 1,\n", " 31249: 1,\n", " 31402: 1,\n", " 31760: 1,\n", " 32091: 1,\n", " 32169: 1,\n", " 34049: 1,\n", " 34449: 1,\n", " 35009: 1,\n", " 36610: 1,\n", " 37777: 1,\n", " 38282: 1,\n", " 38535: 1,\n", " 39818: 1,\n", " 41124: 1,\n", " 17228: 5,\n", " 6010: 4,\n", " 22982: 4,\n", " 23269: 4,\n", " 32320: 4,\n", " 39238: 4,\n", " 11661: 3,\n", " 18328: 3,\n", " 34648: 3,\n", " 35164: 3,\n", " 41253: 3,\n", " 898: 2,\n", " 2178: 2,\n", " 6633: 2,\n", " 11828: 2,\n", " 15352: 2,\n", " 24104: 2,\n", " 24813: 2,\n", " 27736: 2,\n", " 29366: 2,\n", " 36257: 2,\n", " 37295: 2,\n", " 313: 1,\n", " 2049: 1,\n", " 2437: 1,\n", " 2547: 1,\n", " 2688: 1,\n", " 2874: 1,\n", " 3231: 1,\n", " 3487: 1,\n", " 8093: 1,\n", " 8785: 1,\n", " 10320: 1,\n", " 10591: 1,\n", " 11300: 1,\n", " 12020: 1,\n", " 12365: 1,\n", " 14016: 1,\n", " 15786: 1,\n", " 17874: 1,\n", " 19029: 1,\n", " 19436: 1,\n", " 22091: 1,\n", " 23478: 1,\n", " 25022: 1,\n", " 25637: 1,\n", " 25777: 1,\n", " 26082: 1,\n", " 26195: 1,\n", " 27890: 1,\n", " 28528: 1,\n", " 29853: 1,\n", " 30339: 1,\n", " 31713: 1,\n", " 32173: 1,\n", " 33121: 1,\n", " 33297: 1,\n", " 35336: 1,\n", " 36580: 1,\n", " 39320: 1,\n", " 41247: 1,\n", " 28671: 19,\n", " 26850: 8,\n", " 26616: 7,\n", " 14338: 3,\n", " 1421: 2,\n", " 10561: 2,\n", " 11000: 2,\n", " 12517: 2,\n", " 15469: 2,\n", " 20016: 2,\n", " 24130: 2,\n", " 25963: 2,\n", " 29033: 2,\n", " 35622: 2,\n", " 38051: 2,\n", " 38465: 2,\n", " 39740: 2,\n", " 3448: 1,\n", " 3489: 1,\n", " 6804: 1,\n", " 7634: 1,\n", " 9246: 1,\n", " 10720: 1,\n", " 13198: 1,\n", " 14873: 1,\n", " 16720: 1,\n", " 17233: 1,\n", " 18438: 1,\n", " 26984: 1,\n", " 28836: 1,\n", " 29373: 1,\n", " 29876: 1,\n", " 40768: 1,\n", " 12057: 219,\n", " 33654: 41,\n", " 40806: 17,\n", " 11944: 12,\n", " 39098: 12,\n", " 3364: 11,\n", " 29022: 7,\n", " 5225: 5,\n", " 29608: 5,\n", " 39654: 5,\n", " 10254: 4,\n", " 37042: 4,\n", " 15347: 3,\n", " 17043: 3,\n", " 22938: 3,\n", " 28597: 3,\n", " 782: 2,\n", " 3050: 2,\n", " 3421: 2,\n", " 9023: 2,\n", " 17382: 2,\n", " 18793: 2,\n", " 19278: 2,\n", " 21762: 2,\n", " 22647: 2,\n", " 25072: 2,\n", " 34229: 2,\n", " 38021: 2,\n", " 39741: 2,\n", " 39823: 2,\n", " 87: 1,\n", " 585: 1,\n", " 849: 1,\n", " 1464: 1,\n", " 1740: 1,\n", " 2009: 1,\n", " 3062: 1,\n", " 3651: 1,\n", " 4123: 1,\n", " 4208: 1,\n", " 4772: 1,\n", " 5584: 1,\n", " 5997: 1,\n", " 6009: 1,\n", " 6107: 1,\n", " 6147: 1,\n", " 6212: 1,\n", " 6464: 1,\n", " 7512: 1,\n", " 8012: 1,\n", " 9639: 1,\n", " 9859: 1,\n", " 9892: 1,\n", " 10314: 1,\n", " 10689: 1,\n", " 10793: 1,\n", " 10803: 1,\n", " 10838: 1,\n", " 11120: 1,\n", " 14279: 1,\n", " 14395: 1,\n", " 14564: 1,\n", " 14954: 1,\n", " 15015: 1,\n", " 15130: 1,\n", " 15244: 1,\n", " 15245: 1,\n", " 15729: 1,\n", " 16143: 1,\n", " 16176: 1,\n", " 17195: 1,\n", " 17513: 1,\n", " 17875: 1,\n", " 18215: 1,\n", " 18555: 1,\n", " 18963: 1,\n", " 19159: 1,\n", " 19182: 1,\n", " 19435: 1,\n", " 20171: 1,\n", " 21524: 1,\n", " 21895: 1,\n", " 21952: 1,\n", " 22346: 1,\n", " 22452: 1,\n", " 23455: 1,\n", " 24603: 1,\n", " 24722: 1,\n", " 24953: 1,\n", " 26836: 1,\n", " 27211: 1,\n", " 27491: 1,\n", " 28266: 1,\n", " 28642: 1,\n", " 28918: 1,\n", " 29136: 1,\n", " 30797: 1,\n", " 32554: 1,\n", " 33487: 1,\n", " 33554: 1,\n", " 33976: 1,\n", " 34321: 1,\n", " 34908: 1,\n", " 35163: 1,\n", " 35461: 1,\n", " 35869: 1,\n", " 36555: 1,\n", " 36732: 1,\n", " 37474: 1,\n", " 37587: 1,\n", " 38032: 1,\n", " 38534: 1,\n", " 39214: 1,\n", " 40086: 1,\n", " 40640: 1,\n", " 41620: 1,\n", " 41486: 149,\n", " 23610: 102,\n", " 19594: 49,\n", " 5564: 29,\n", " 37765: 11,\n", " 20194: 9,\n", " 4935: 8,\n", " 6758: 8,\n", " 21648: 8,\n", " 15014: 7,\n", " 31411: 7,\n", " 3049: 5,\n", " 24686: 5,\n", " 29783: 5,\n", " 30300: 5,\n", " 2272: 4,\n", " 18229: 4,\n", " 20270: 4,\n", " 26081: 4,\n", " 26919: 4,\n", " 27129: 4,\n", " ...}}" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "my_subset.to_dict()" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "cpr.to_csv('test.csv', sep=',')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Go for the HW" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }