Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@icoxfog417
Last active October 21, 2019 06:15
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save icoxfog417/926a1b7250e988c3083f843fce79a642 to your computer and use it in GitHub Desktop.
Save icoxfog417/926a1b7250e988c3083f843fce79a642 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"from google.cloud import bigquery\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport wordcloud\n\n\nPROJECT_ID = 'your_project_id' \nclient = bigquery.Client(project=PROJECT_ID, location=\"US\")\n\ndataset_ref = client.dataset(\"sec_quarterly_financials\", project=\"bigquery-public-data\")\n\n# Make an API request to fetch the dataset\ndataset = client.get_dataset(dataset_ref)","execution_count":24,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"tables = list(client.list_tables(dataset))\n\n# Print names of all tables in the dataset\nquick_summary = None\nfor table in tables:\n print(table.table_id)\n if table.table_id == \"quick_summary\":\n quick_summary = table","execution_count":25,"outputs":[{"output_type":"stream","text":"calculation\ndimension\nmeasure_tag\nnumbers\npresentation\nquick_summary\nrendering\nsic_codes\nsubmission\ntxt\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"client.list_rows(quick_summary, max_results=5).to_dataframe()","execution_count":26,"outputs":[{"output_type":"execute_result","execution_count":26,"data":{"text/plain":" submission_number company_name \\\n0 0001437749-17-000102 NATIONAL HOLDINGS CORP \n1 0001062993-17-000442 XIANGTIAN (USA) AIR POWER CO., LTD. \n2 0001564590-17-000589 SCHLUMBERGER LIMITED/NV \n3 0001558370-17-000064 HELEN OF TROY LTD \n4 0001674862-17-000006 ASHLAND GLOBAL HOLDINGS INC \n\n measure_tag period_end_date \\\n0 Liabilities 20160930 \n1 CostOfGoodsSold 20140731 \n2 DeferredTaxLiabilitiesPropertyPlantAndEquipment 20161231 \n3 OtherComprehensiveIncomeLossNetOfTaxPortionAtt... 20151130 \n4 DepreciationDepletionAndAmortization 20161231 \n\n value units number_of_quarters version central_index_key \\\n0 34773000.0 USD 0 us-gaap/2016 1023844 \n1 0.0 USD 4 us-gaap/2015 1472468 \n2 79000000.0 USD 0 us-gaap/2016 87347 \n3 1805000.0 USD 3 us-gaap/2016 916789 \n4 77000000.0 USD 1 us-gaap/2015 1674862 \n\n ein sic fiscal_year_end form fiscal_year fiscal_period_focus \\\n0 364128138 6200 0930 S-1/A 2016 FY \n1 980632932 3621 0731 POS AM 2017 Q1 \n2 520684746 1389 1231 10-K 2016 FY \n3 742692550 3634 0229 10-Q 2016 Q3 \n4 812587835 5160 0930 10-Q 2017 Q1 \n\n date_filed date_accepted \n0 20170104 2017-01-04 12:20:00+00:00 \n1 20170131 2017-01-30 17:34:00+00:00 \n2 20170125 2017-01-25 11:34:00+00:00 \n3 20170109 2017-01-09 16:00:00+00:00 \n4 20170127 2017-01-27 16:04:00+00:00 ","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>submission_number</th>\n <th>company_name</th>\n <th>measure_tag</th>\n <th>period_end_date</th>\n <th>value</th>\n <th>units</th>\n <th>number_of_quarters</th>\n <th>version</th>\n <th>central_index_key</th>\n <th>ein</th>\n <th>sic</th>\n <th>fiscal_year_end</th>\n <th>form</th>\n <th>fiscal_year</th>\n <th>fiscal_period_focus</th>\n <th>date_filed</th>\n <th>date_accepted</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>0</td>\n <td>0001437749-17-000102</td>\n <td>NATIONAL HOLDINGS CORP</td>\n <td>Liabilities</td>\n <td>20160930</td>\n <td>34773000.0</td>\n <td>USD</td>\n <td>0</td>\n <td>us-gaap/2016</td>\n <td>1023844</td>\n <td>364128138</td>\n <td>6200</td>\n <td>0930</td>\n <td>S-1/A</td>\n <td>2016</td>\n <td>FY</td>\n <td>20170104</td>\n <td>2017-01-04 12:20:00+00:00</td>\n </tr>\n <tr>\n <td>1</td>\n <td>0001062993-17-000442</td>\n <td>XIANGTIAN (USA) AIR POWER CO., LTD.</td>\n <td>CostOfGoodsSold</td>\n <td>20140731</td>\n <td>0.0</td>\n <td>USD</td>\n <td>4</td>\n <td>us-gaap/2015</td>\n <td>1472468</td>\n <td>980632932</td>\n <td>3621</td>\n <td>0731</td>\n <td>POS AM</td>\n <td>2017</td>\n <td>Q1</td>\n <td>20170131</td>\n <td>2017-01-30 17:34:00+00:00</td>\n </tr>\n <tr>\n <td>2</td>\n <td>0001564590-17-000589</td>\n <td>SCHLUMBERGER LIMITED/NV</td>\n <td>DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>\n <td>20161231</td>\n <td>79000000.0</td>\n <td>USD</td>\n <td>0</td>\n <td>us-gaap/2016</td>\n <td>87347</td>\n <td>520684746</td>\n <td>1389</td>\n <td>1231</td>\n <td>10-K</td>\n <td>2016</td>\n <td>FY</td>\n <td>20170125</td>\n <td>2017-01-25 11:34:00+00:00</td>\n </tr>\n <tr>\n <td>3</td>\n <td>0001558370-17-000064</td>\n <td>HELEN OF TROY LTD</td>\n <td>OtherComprehensiveIncomeLossNetOfTaxPortionAtt...</td>\n <td>20151130</td>\n <td>1805000.0</td>\n <td>USD</td>\n <td>3</td>\n <td>us-gaap/2016</td>\n <td>916789</td>\n <td>742692550</td>\n <td>3634</td>\n <td>0229</td>\n <td>10-Q</td>\n <td>2016</td>\n <td>Q3</td>\n <td>20170109</td>\n <td>2017-01-09 16:00:00+00:00</td>\n </tr>\n <tr>\n <td>4</td>\n <td>0001674862-17-000006</td>\n <td>ASHLAND GLOBAL HOLDINGS INC</td>\n <td>DepreciationDepletionAndAmortization</td>\n <td>20161231</td>\n <td>77000000.0</td>\n <td>USD</td>\n <td>1</td>\n <td>us-gaap/2015</td>\n <td>1674862</td>\n <td>812587835</td>\n <td>5160</td>\n <td>0930</td>\n <td>10-Q</td>\n <td>2017</td>\n <td>Q1</td>\n <td>20170127</td>\n <td>2017-01-27 16:04:00+00:00</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"query1 = \"\"\"\nSELECT \n company_name,\n fiscal_year,\n measure_tag,\n MAX(value) / 1e9 AS revenue\nFROM\n `bigquery-public-data.sec_quarterly_financials.quick_summary`\nWHERE\n company_name IN ('WHOLE FOODS MARKET INC', 'ALPHABET INC.',\n 'AMAZON COM INC', 'PFIZER INC',\n 'BANK OF AMERICA CORP /DE/')\n AND fiscal_year IN (2015, 2016, 2017)\n AND measure_tag IN ('Revenues', 'SalesRevenueNet',\n 'SalesRevenueGoodsNet')\n AND fiscal_period_focus = 'FY'\n AND number_of_quarters = 4\nGROUP BY\n company_name, fiscal_year, measure_tag\nORDER BY\n company_name, fiscal_year\n\"\"\"","execution_count":27,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from google.cloud.bigquery.job import QueryJobConfig\n\n\nquery_job = client.query(query1)\nresult = query_job.to_dataframe()\n\nprint(result)","execution_count":29,"outputs":[{"output_type":"stream","text":" company_name fiscal_year measure_tag revenue\n0 ALPHABET INC. 2015 Revenues 74.989\n1 ALPHABET INC. 2016 Revenues 90.272\n2 ALPHABET INC. 2017 Revenues 110.855\n3 AMAZON COM INC 2015 SalesRevenueNet 107.006\n4 AMAZON COM INC 2015 SalesRevenueGoodsNet 79.268\n5 AMAZON COM INC 2016 SalesRevenueNet 135.987\n6 AMAZON COM INC 2016 SalesRevenueGoodsNet 94.665\n7 AMAZON COM INC 2017 SalesRevenueNet 177.866\n8 AMAZON COM INC 2017 SalesRevenueGoodsNet 118.573\n9 BANK OF AMERICA CORP /DE/ 2015 Revenues 88.942\n10 BANK OF AMERICA CORP /DE/ 2016 Revenues 85.894\n11 BANK OF AMERICA CORP /DE/ 2017 Revenues 87.352\n12 PFIZER INC 2015 SalesRevenueGoodsNet 51.584\n13 PFIZER INC 2016 SalesRevenueGoodsNet 52.824\n14 PFIZER INC 2017 SalesRevenueGoodsNet 52.824\n15 WHOLE FOODS MARKET INC 2016 SalesRevenueNet 15.724\n16 WHOLE FOODS MARKET INC 2017 SalesRevenueNet 16.030\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"import pandas as pd\n\n\ncomparison = pd.concat(\n [result[result[\"company_name\"] == \"ALPHABET INC.\"],\n result[(result[\"company_name\"] == \"AMAZON COM INC\") & (result[\"measure_tag\"] == \"SalesRevenueGoodsNet\")],\n ], ignore_index=True)\n\nax = sns.barplot(\n x=\"company_name\",y=\"revenue\", hue=\"fiscal_year\",\n data=comparison,\n palette=\"coolwarm\").set_title(\"Annual Revenue\")","execution_count":46,"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 432x288 with 1 Axes>","image/png":"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x82fjIhTIuKF9Fm8s0iGnn7QlDuY1uTqq6/mwQcfbBV3+SxfvpwOHdbrCilmtp4o5V1MQyOie0R0jIieEXFdRGwXEb0ion/6OiWz/AURsW1E7BgRD65t241xyimnMG/ePI444gguvfRSxowZA8Add9xB37592W233dhvv/0AWLFiBWeeeSb9+vVj11135YorrgBg7Nix7LnnnvTt25fRo0dTyFP4Jk+ezODBg1dOT5o0iW9961sAPPzww+y9994MGDCAY489lsWLF691PwcccAA/+9nP2H///fnNb35TrH8aM7O1avW/pL722mvp0aMHU6ZMYeONN145f+zYsTz00EPMnDmTiROTRw6PHz+eV199lenTp/Pss88ybNgwAMaMGcMzzzzD888/z6effsr999+fu6+sAw88kNmzZ1N3p9UNN9zAyJEjee+99zj//PN55JFHmDZtGlVVVVxyySUN7mfRokU89thj/OQnPynav42Z2dq0+gSxJvvssw8jRozgd7/7HStWJKNZjzzyCKeccsrKIZxNNtkEgClTpjBw4ED69evHX//6V1544YUGty+J73znO/zxj39k0aJF/POf/+TQQw/lySefZNasWeyzzz7079+fCRMm8Prrrze4nyFDhhT7n8DMbK3a7GD2tddey1NPPcUDDzxA//79mTFjBhHxpd8ULF26lFNPPZXq6mp69erFeeedV/CP0kaOHMnhhx9Op06dOPbYY+nQoQMRwUEHHcQtt9zSqP1suOGG637QZmaN0GZ7EK+88goDBw5k7NixdOvWjTfffJODDz6Ya6+9luXLkx97L1y4cOWHdLdu3Vi8eDF33nlnwfvo0aMHPXr04Pzzz2fEiBEA7LXXXjzxxBPMnTsXgE8++YSXX355nfZjZlYKbbYHcdZZZzFnzhwigkGDBrHbbrvRt29fXn75ZXbddVc6duzIySefzJgxYzj55JPp168flZWV7Lnnno3az7Bhw6itrWXnnXcGoKKightvvJGhQ4fy2WefAXD++eezww47rNN+zMyKTYXckdNSVVVVRf0nys2ePZs+ffqUKaIvGzNmDLvvvjujRo0q6X5a2nGbrS/a4u8gJE2NiKqGlmuzPYjmsMcee7Dhhhty8cUXlzsUM7NGc4IogsGDB/Pqq6+uNu+iiy5i6tSpZYrIzGzdOUEUwT333FPuEMzMiq7N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\n"},"metadata":{"needs_background":"light"}}]}],"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat":4,"nbformat_minor":1}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment