Skip to content

Instantly share code, notes, and snippets.

@n8henrie
Last active December 20, 2019 04:26
Show Gist options
  • Save n8henrie/5be18b7016267d1e935640dc5384d184 to your computer and use it in GitHub Desktop.
Save n8henrie/5be18b7016267d1e935640dc5384d184 to your computer and use it in GitHub Desktop.
A quick look at congress bills in recent history by unified or divided congress
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 608,
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"import ssl\n",
"from urllib.request import urlopen\n",
"\n",
"import bs4\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 609,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The blackcellmagic extension is already loaded. To reload it, use:\n",
" %reload_ext blackcellmagic\n"
]
}
],
"source": [
"%load_ext blackcellmagic"
]
},
{
"cell_type": "code",
"execution_count": 610,
"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>Congress</th>\n",
" <th>Enacted Laws</th>\n",
" <th>Passed Resolutions</th>\n",
" <th>Got A Vote</th>\n",
" <th>Failed Legislation</th>\n",
" <th>Vetoed Bills (w/o Override)</th>\n",
" <th>Other Legislation</th>\n",
" <th>TOTAL</th>\n",
" <th>Congress Index</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>116th Jan 3, 2019 -present</td>\n",
" <td>78 1%</td>\n",
" <td>401 4%</td>\n",
" <td>458 5%</td>\n",
" <td>17 0%</td>\n",
" <td>6 0%</td>\n",
" <td>8,887 90%</td>\n",
" <td>9847</td>\n",
" <td>116</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>115th Jan 3, 2017 -Jan 3, 2019</td>\n",
" <td>443 3%</td>\n",
" <td>758 6%</td>\n",
" <td>867 6%</td>\n",
" <td>14 0%</td>\n",
" <td>0 0%</td>\n",
" <td>11,474 85%</td>\n",
" <td>13556</td>\n",
" <td>115</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>114th Jan 6, 2015 -Jan 3, 2017</td>\n",
" <td>329 3%</td>\n",
" <td>708 6%</td>\n",
" <td>661 5%</td>\n",
" <td>22 0%</td>\n",
" <td>9 0%</td>\n",
" <td>10,334 86%</td>\n",
" <td>12063</td>\n",
" <td>114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>113th Jan 3, 2013 -Jan 2, 2015</td>\n",
" <td>296 3%</td>\n",
" <td>663 6%</td>\n",
" <td>474 4%</td>\n",
" <td>20 0%</td>\n",
" <td>0 0%</td>\n",
" <td>9,184 86%</td>\n",
" <td>10637</td>\n",
" <td>113</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>112th Jan 5, 2011 -Jan 3, 2013</td>\n",
" <td>284 2%</td>\n",
" <td>722 6%</td>\n",
" <td>390 3%</td>\n",
" <td>38 0%</td>\n",
" <td>0 0%</td>\n",
" <td>10,865 88%</td>\n",
" <td>12299</td>\n",
" <td>112</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Congress Enacted Laws Passed Resolutions Got A Vote \\\n",
"0 116th Jan 3, 2019 -present 78 1% 401 4% 458 5% \n",
"1 115th Jan 3, 2017 -Jan 3, 2019 443 3% 758 6% 867 6% \n",
"2 114th Jan 6, 2015 -Jan 3, 2017 329 3% 708 6% 661 5% \n",
"3 113th Jan 3, 2013 -Jan 2, 2015 296 3% 663 6% 474 4% \n",
"4 112th Jan 5, 2011 -Jan 3, 2013 284 2% 722 6% 390 3% \n",
"\n",
" Failed Legislation Vetoed Bills (w/o Override) Other Legislation TOTAL \\\n",
"0 17 0% 6 0% 8,887 90% 9847 \n",
"1 14 0% 0 0% 11,474 85% 13556 \n",
"2 22 0% 9 0% 10,334 86% 12063 \n",
"3 20 0% 0 0% 9,184 86% 10637 \n",
"4 38 0% 0 0% 10,865 88% 12299 \n",
"\n",
" Congress Index \n",
"0 116 \n",
"1 115 \n",
"2 114 \n",
"3 113 \n",
"4 112 "
]
},
"execution_count": 610,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bills = pd.read_html(\"https://www.govtrack.us/congress/bills/statistics\")[0]\n",
"bills[\"Congress Index\"] = bills[\"Congress\"].str.extract(\n",
" r\"^(\\d+)\", expand=False\n",
")\n",
"bills.head()"
]
},
{
"cell_type": "code",
"execution_count": 611,
"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>Congress (Years)</th>\n",
" <th># of House Seats</th>\n",
" <th>Democrats</th>\n",
" <th>Republicans</th>\n",
" <th>Other</th>\n",
" <th>Del./Res.</th>\n",
" <th>Congress Index</th>\n",
" <th>house majority</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>109</th>\n",
" <td>97th (1981–1983)</td>\n",
" <td>435</td>\n",
" <td>243</td>\n",
" <td>192</td>\n",
" <td>0</td>\n",
" <td>4/1</td>\n",
" <td>97</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>110</th>\n",
" <td>98th (1983–1985)</td>\n",
" <td>435</td>\n",
" <td>269</td>\n",
" <td>166</td>\n",
" <td>0</td>\n",
" <td>4/1</td>\n",
" <td>98</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>111</th>\n",
" <td>99th (1985–1987)</td>\n",
" <td>435</td>\n",
" <td>254</td>\n",
" <td>181</td>\n",
" <td>0</td>\n",
" <td>4/1</td>\n",
" <td>99</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>112</th>\n",
" <td>100th (1987–1989)</td>\n",
" <td>435</td>\n",
" <td>258</td>\n",
" <td>177</td>\n",
" <td>0</td>\n",
" <td>4/1</td>\n",
" <td>100</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>113</th>\n",
" <td>101st (1989–1991)</td>\n",
" <td>435</td>\n",
" <td>260</td>\n",
" <td>175</td>\n",
" <td>0</td>\n",
" <td>4/1</td>\n",
" <td>101</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Congress (Years) # of House Seats Democrats Republicans Other Del./Res. \\\n",
"109 97th (1981–1983) 435 243 192 0 4/1 \n",
"110 98th (1983–1985) 435 269 166 0 4/1 \n",
"111 99th (1985–1987) 435 254 181 0 4/1 \n",
"112 100th (1987–1989) 435 258 177 0 4/1 \n",
"113 101st (1989–1991) 435 260 175 0 4/1 \n",
"\n",
" Congress Index house majority \n",
"109 97 Democrat \n",
"110 98 Democrat \n",
"111 99 Democrat \n",
"112 100 Democrat \n",
"113 101 Democrat "
]
},
"execution_count": 611,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"context = ssl._create_unverified_context()\n",
"with urlopen(\n",
" \"https://history.house.gov/Institution/Party-Divisions/Party-Divisions/\",\n",
" context=context,\n",
") as req:\n",
" resp = req.read()\n",
"house = pd.read_html(resp)[0]\n",
"\n",
"# Fix column names to reflect democrat / republican\n",
"fix_columns_index = house[\"Congress (Years)\"].searchsorted(\"35th\")\n",
"house_columns = house.iloc[fix_columns_index].values\n",
"modern_house = house.iloc[fix_columns_index + 1 :]\n",
"modern_house.columns = house_columns\n",
"modern_house = modern_house.copy()\n",
"modern_house[\"Congress Index\"] = modern_house.iloc[:, 0].str.extract(\n",
" \"^(\\d+)\", expand=False\n",
")\n",
"modern_house[\"house majority\"] = (\n",
" modern_house[\"Democrats\"] >= modern_house[\"Republicans\"]\n",
").map(lambda b: \"Democrat\" if b else \"Republican\")\n",
"recent_house = modern_house[\n",
" modern_house[\"Congress (Years)\"]\n",
" .str.extract(r\"\\((\\d{4})\", expand=False)\n",
" .astype(float)\n",
" > 1980\n",
"]\n",
"recent_house.head()"
]
},
{
"cell_type": "code",
"execution_count": 612,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Could not parse: Note: Statistics listed below reflect party division immediately following the election, unless otherwise noted. The actual number of senators representing a particular party often changes during a Congress, due to the death or resignation of a senator, or as a consequence of a member changing parties.\n",
"Could not parse: Party Division in the House of Representatives\n"
]
},
{
"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>congress</th>\n",
" <th>senate majority party</th>\n",
" <th>Congress Index</th>\n",
" <th>senate majority</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>97th Congress (1981-1983)</td>\n",
" <td>Majority Party: Republican (53 seats)</td>\n",
" <td>97</td>\n",
" <td>Republican</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>98th Congress (1983-1985)</td>\n",
" <td>Majority Party: Republican (55 seats)</td>\n",
" <td>98</td>\n",
" <td>Republican</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>99th Congress (1985-1987)</td>\n",
" <td>Majority Party: Republican (53 seats)</td>\n",
" <td>99</td>\n",
" <td>Republican</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>100th Congress (1987-1989)</td>\n",
" <td>Majority Party: Democrat (55 seats)</td>\n",
" <td>100</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>101st Congress (1989-1991)</td>\n",
" <td>Majority Party: Democrat (55 seats)</td>\n",
" <td>101</td>\n",
" <td>Democrat</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" congress senate majority party \\\n",
"96 97th Congress (1981-1983) Majority Party: Republican (53 seats) \n",
"97 98th Congress (1983-1985) Majority Party: Republican (55 seats) \n",
"98 99th Congress (1985-1987) Majority Party: Republican (53 seats) \n",
"99 100th Congress (1987-1989) Majority Party: Democrat (55 seats) \n",
"100 101st Congress (1989-1991) Majority Party: Democrat (55 seats) \n",
"\n",
" Congress Index senate majority \n",
"96 97 Republican \n",
"97 98 Republican \n",
"98 99 Republican \n",
"99 100 Democrat \n",
"100 101 Democrat "
]
},
"execution_count": 612,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"with urlopen(\"https://www.cop.senate.gov/history/partydiv.htm\") as req:\n",
" senate_html = req.read()\n",
"soup = bs4.BeautifulSoup(senate_html)\n",
"senate_div = soup.find(\"div\", class_=\"contenttext\")\n",
"\n",
"divider = re.compile(r\"--------+\")\n",
"senates = []\n",
"for chunk in re.split(divider, senate_div.text):\n",
" if chunk.strip() == \"\":\n",
" continue\n",
" congress_name = maj_party = None\n",
" for line in chunk.splitlines():\n",
" if match := re.match(r\"^\\w+ Congress \\((\\d{4})-\\d{4}\\)\", line.strip()):\n",
" congress_name = match.group(0)\n",
" if \"Majority Party\" in line:\n",
" maj_party = line\n",
" else:\n",
" if any((congress_name is None, maj_party is None)):\n",
" print(f\"Could not parse: {chunk.strip()}\")\n",
" else:\n",
" senates.append(\n",
" {\n",
" \"congress\": congress_name,\n",
" \"senate majority party\": maj_party,\n",
" }\n",
" )\n",
"senate = pd.DataFrame.from_records(senates)\n",
"senate[\"Congress Index\"] = senate[\"congress\"].str.extract(\n",
" r\"^(\\d+)\", expand=False\n",
")\n",
"senate[\"senate majority\"] = (\n",
" senate[\"senate majority party\"]\n",
" .str.contains(\"Democrat\")\n",
" .map(lambda b: \"Democrat\" if b else \"Republican\")\n",
")\n",
"recent_senate = senate[\n",
" senate[\"congress\"].str.extract(r\"\\((\\d{4})\", expand=False).astype(float)\n",
" > 1980\n",
"]\n",
"recent_senate.head()"
]
},
{
"cell_type": "code",
"execution_count": 613,
"metadata": {},
"outputs": [],
"source": [
"merged = pd.merge(recent_house, recent_senate, on=\"Congress Index\")\n",
"merged = pd.merge(merged, bills, on=\"Congress Index\")\n",
"merged.set_index(\"Congress Index\", inplace=True)\n",
"merged[\"Years\"] = merged[\"Congress (Years)\"].str.extract(r\"\\((\\d{4}.\\d{4})\\)\")\n",
"merged[\"Years\"] = merged[\"Years\"].str.replace(r\"(\\d{4}).(\\d{4})\", r\"\\1-\\2\")\n",
"merged = merged[\n",
" [\n",
" \"Years\",\n",
" \"house majority\",\n",
" \"senate majority\",\n",
" \"Enacted Laws\",\n",
" \"Passed Resolutions\",\n",
" \"Got A Vote\",\n",
" \"Failed Legislation\",\n",
" \"Vetoed Bills (w/o Override)\",\n",
" \"Other Legislation\",\n",
" \"TOTAL\",\n",
" ]\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 614,
"metadata": {},
"outputs": [],
"source": [
"def split_and_set_percentage(df, cols):\n",
" for col in cols:\n",
" df[[col, f\"{col} %\"]] = df[col].str.split(expand=True)\n",
" df[f\"{col} %\"] = df[f\"{col} %\"].map(\n",
" lambda x: float(x.rstrip(\"%\")) / 100\n",
" )\n",
"\n",
"\n",
"merged.pipe(\n",
" split_and_set_percentage,\n",
" [\n",
" \"Enacted Laws\",\n",
" \"Passed Resolutions\",\n",
" \"Got A Vote\",\n",
" \"Failed Legislation\",\n",
" \"Vetoed Bills (w/o Override)\",\n",
" \"Other Legislation\",\n",
" ],\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 615,
"metadata": {},
"outputs": [],
"source": [
"def try_remove_commas(s):\n",
" try:\n",
" return s.str.replace(\",\", \"\")\n",
" except AttributeError:\n",
" return s"
]
},
{
"cell_type": "code",
"execution_count": 616,
"metadata": {},
"outputs": [],
"source": [
"merged = merged.apply(try_remove_commas)"
]
},
{
"cell_type": "code",
"execution_count": 617,
"metadata": {},
"outputs": [],
"source": [
"merged = merged.astype(\n",
" {\n",
" \"house majority\": \"category\",\n",
" \"senate majority\": \"category\",\n",
" \"Enacted Laws\": int,\n",
" \"Passed Resolutions\": int,\n",
" \"Got A Vote\": int,\n",
" \"Failed Legislation\": int,\n",
" \"Vetoed Bills (w/o Override)\": int,\n",
" \"Other Legislation\": int,\n",
" \"TOTAL\": int,\n",
" }\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 618,
"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>Years</th>\n",
" <th>house majority</th>\n",
" <th>senate majority</th>\n",
" <th>Enacted Laws</th>\n",
" <th>Passed Resolutions</th>\n",
" <th>Got A Vote</th>\n",
" <th>Failed Legislation</th>\n",
" <th>Vetoed Bills (w/o Override)</th>\n",
" <th>Other Legislation</th>\n",
" <th>TOTAL</th>\n",
" <th>Enacted Laws %</th>\n",
" <th>Passed Resolutions %</th>\n",
" <th>Got A Vote %</th>\n",
" <th>Failed Legislation %</th>\n",
" <th>Vetoed Bills (w/o Override) %</th>\n",
" <th>Other Legislation %</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Congress Index</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>1981-1983</td>\n",
" <td>Democrat</td>\n",
" <td>Republican</td>\n",
" <td>529</td>\n",
" <td>370</td>\n",
" <td>498</td>\n",
" <td>2</td>\n",
" <td>13</td>\n",
" <td>11824</td>\n",
" <td>13236</td>\n",
" <td>0.04</td>\n",
" <td>0.03</td>\n",
" <td>0.04</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>1983-1985</td>\n",
" <td>Democrat</td>\n",
" <td>Republican</td>\n",
" <td>677</td>\n",
" <td>331</td>\n",
" <td>561</td>\n",
" <td>3</td>\n",
" <td>21</td>\n",
" <td>10609</td>\n",
" <td>12202</td>\n",
" <td>0.06</td>\n",
" <td>0.03</td>\n",
" <td>0.05</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>1985-1987</td>\n",
" <td>Democrat</td>\n",
" <td>Republican</td>\n",
" <td>687</td>\n",
" <td>332</td>\n",
" <td>545</td>\n",
" <td>3</td>\n",
" <td>18</td>\n",
" <td>10017</td>\n",
" <td>11602</td>\n",
" <td>0.06</td>\n",
" <td>0.03</td>\n",
" <td>0.05</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>1987-1989</td>\n",
" <td>Democrat</td>\n",
" <td>Democrat</td>\n",
" <td>761</td>\n",
" <td>342</td>\n",
" <td>578</td>\n",
" <td>6</td>\n",
" <td>16</td>\n",
" <td>9575</td>\n",
" <td>11278</td>\n",
" <td>0.07</td>\n",
" <td>0.03</td>\n",
" <td>0.05</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>101</th>\n",
" <td>1989-1991</td>\n",
" <td>Democrat</td>\n",
" <td>Democrat</td>\n",
" <td>665</td>\n",
" <td>599</td>\n",
" <td>620</td>\n",
" <td>22</td>\n",
" <td>20</td>\n",
" <td>9861</td>\n",
" <td>11787</td>\n",
" <td>0.06</td>\n",
" <td>0.05</td>\n",
" <td>0.05</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.84</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Years house majority senate majority Enacted Laws \\\n",
"Congress Index \n",
"97 1981-1983 Democrat Republican 529 \n",
"98 1983-1985 Democrat Republican 677 \n",
"99 1985-1987 Democrat Republican 687 \n",
"100 1987-1989 Democrat Democrat 761 \n",
"101 1989-1991 Democrat Democrat 665 \n",
"\n",
" Passed Resolutions Got A Vote Failed Legislation \\\n",
"Congress Index \n",
"97 370 498 2 \n",
"98 331 561 3 \n",
"99 332 545 3 \n",
"100 342 578 6 \n",
"101 599 620 22 \n",
"\n",
" Vetoed Bills (w/o Override) Other Legislation TOTAL \\\n",
"Congress Index \n",
"97 13 11824 13236 \n",
"98 21 10609 12202 \n",
"99 18 10017 11602 \n",
"100 16 9575 11278 \n",
"101 20 9861 11787 \n",
"\n",
" Enacted Laws % Passed Resolutions % Got A Vote % \\\n",
"Congress Index \n",
"97 0.04 0.03 0.04 \n",
"98 0.06 0.03 0.05 \n",
"99 0.06 0.03 0.05 \n",
"100 0.07 0.03 0.05 \n",
"101 0.06 0.05 0.05 \n",
"\n",
" Failed Legislation % Vetoed Bills (w/o Override) % \\\n",
"Congress Index \n",
"97 0.00 0.00 \n",
"98 0.00 0.00 \n",
"99 0.00 0.00 \n",
"100 0.00 0.00 \n",
"101 0.00 0.00 \n",
"\n",
" Other Legislation % \n",
"Congress Index \n",
"97 0.89 \n",
"98 0.87 \n",
"99 0.86 \n",
"100 0.85 \n",
"101 0.84 "
]
},
"execution_count": 618,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"merged.head()"
]
},
{
"cell_type": "code",
"execution_count": 619,
"metadata": {},
"outputs": [],
"source": [
"unified_congress = merged[\n",
" merged[\"house majority\"] == merged[\"senate majority\"]\n",
"]\n",
"divided_congress = merged[\n",
" merged[\"house majority\"] != merged[\"senate majority\"]\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 620,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f3c317dd190>"
]
},
"execution_count": 620,
"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": [
"merged[\"Enacted Laws %\"].plot(kind=\"bar\")"
]
},
{
"cell_type": "code",
"execution_count": 621,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f3c314f6d90>"
]
},
"execution_count": 621,
"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": [
"unified_congress[\"Enacted Laws %\"].plot(kind=\"bar\")"
]
},
{
"cell_type": "code",
"execution_count": 622,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f3c31478d60>"
]
},
"execution_count": 622,
"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": [
"divided_congress[\"Enacted Laws %\"].plot(kind=\"bar\")"
]
},
{
"cell_type": "code",
"execution_count": 623,
"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>Enacted Laws</th>\n",
" <th>Passed Resolutions</th>\n",
" <th>Got A Vote</th>\n",
" <th>Failed Legislation</th>\n",
" <th>Vetoed Bills (w/o Override)</th>\n",
" <th>Other Legislation</th>\n",
" <th>TOTAL</th>\n",
" <th>Enacted Laws %</th>\n",
" <th>Passed Resolutions %</th>\n",
" <th>Got A Vote %</th>\n",
" <th>Failed Legislation %</th>\n",
" <th>Vetoed Bills (w/o Override) %</th>\n",
" <th>Other Legislation %</th>\n",
" </tr>\n",
" <tr>\n",
" <th>senate majority</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>False</th>\n",
" <td>425.17</td>\n",
" <td>469.83</td>\n",
" <td>487.67</td>\n",
" <td>13.83</td>\n",
" <td>9.67</td>\n",
" <td>10,231.00</td>\n",
" <td>11,637.17</td>\n",
" <td>0.04</td>\n",
" <td>0.04</td>\n",
" <td>0.04</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.88</td>\n",
" </tr>\n",
" <tr>\n",
" <th>True</th>\n",
" <td>488.64</td>\n",
" <td>783.00</td>\n",
" <td>635.00</td>\n",
" <td>24.86</td>\n",
" <td>8.07</td>\n",
" <td>9,541.93</td>\n",
" <td>11,481.50</td>\n",
" <td>0.04</td>\n",
" <td>0.07</td>\n",
" <td>0.06</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.83</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Enacted Laws Passed Resolutions Got A Vote \\\n",
"senate majority \n",
"False 425.17 469.83 487.67 \n",
"True 488.64 783.00 635.00 \n",
"\n",
" Failed Legislation Vetoed Bills (w/o Override) \\\n",
"senate majority \n",
"False 13.83 9.67 \n",
"True 24.86 8.07 \n",
"\n",
" Other Legislation TOTAL Enacted Laws % \\\n",
"senate majority \n",
"False 10,231.00 11,637.17 0.04 \n",
"True 9,541.93 11,481.50 0.04 \n",
"\n",
" Passed Resolutions % Got A Vote % Failed Legislation % \\\n",
"senate majority \n",
"False 0.04 0.04 0.00 \n",
"True 0.07 0.06 0.00 \n",
"\n",
" Vetoed Bills (w/o Override) % Other Legislation % \n",
"senate majority \n",
"False 0.00 0.88 \n",
"True 0.00 0.83 "
]
},
"execution_count": 623,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"merged.groupby(merged[\"house majority\"] == merged[\"senate majority\"]).mean()"
]
},
{
"cell_type": "code",
"execution_count": 624,
"metadata": {},
"outputs": [],
"source": [
"compared = merged.groupby(\n",
" merged[\"house majority\"] == merged[\"senate majority\"]\n",
").mean()\n",
"compared = compared.transpose()\n",
"compared.columns = [\"divided congress\", \"unified congress\"]"
]
},
{
"cell_type": "code",
"execution_count": 625,
"metadata": {},
"outputs": [],
"source": [
"compared[\"% difference\"] = (\n",
" compared[\"divided congress\"] / compared[\"unified congress\"]\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 626,
"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>divided congress</th>\n",
" <th>unified congress</th>\n",
" <th>% difference</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Enacted Laws</th>\n",
" <td>425.17</td>\n",
" <td>488.64</td>\n",
" <td>0.87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Passed Resolutions</th>\n",
" <td>469.83</td>\n",
" <td>783.00</td>\n",
" <td>0.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Got A Vote</th>\n",
" <td>487.67</td>\n",
" <td>635.00</td>\n",
" <td>0.77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Failed Legislation</th>\n",
" <td>13.83</td>\n",
" <td>24.86</td>\n",
" <td>0.56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Vetoed Bills (w/o Override)</th>\n",
" <td>9.67</td>\n",
" <td>8.07</td>\n",
" <td>1.20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other Legislation</th>\n",
" <td>10,231.00</td>\n",
" <td>9,541.93</td>\n",
" <td>1.07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>TOTAL</th>\n",
" <td>11,637.17</td>\n",
" <td>11,481.50</td>\n",
" <td>1.01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Enacted Laws %</th>\n",
" <td>0.04</td>\n",
" <td>0.04</td>\n",
" <td>0.83</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Passed Resolutions %</th>\n",
" <td>0.04</td>\n",
" <td>0.07</td>\n",
" <td>0.62</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Got A Vote %</th>\n",
" <td>0.04</td>\n",
" <td>0.06</td>\n",
" <td>0.79</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Failed Legislation %</th>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>nan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Vetoed Bills (w/o Override) %</th>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>nan</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Other Legislation %</th>\n",
" <td>0.88</td>\n",
" <td>0.83</td>\n",
" <td>1.05</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" divided congress unified congress \\\n",
"Enacted Laws 425.17 488.64 \n",
"Passed Resolutions 469.83 783.00 \n",
"Got A Vote 487.67 635.00 \n",
"Failed Legislation 13.83 24.86 \n",
"Vetoed Bills (w/o Override) 9.67 8.07 \n",
"Other Legislation 10,231.00 9,541.93 \n",
"TOTAL 11,637.17 11,481.50 \n",
"Enacted Laws % 0.04 0.04 \n",
"Passed Resolutions % 0.04 0.07 \n",
"Got A Vote % 0.04 0.06 \n",
"Failed Legislation % 0.00 0.00 \n",
"Vetoed Bills (w/o Override) % 0.00 0.00 \n",
"Other Legislation % 0.88 0.83 \n",
"\n",
" % difference \n",
"Enacted Laws 0.87 \n",
"Passed Resolutions 0.60 \n",
"Got A Vote 0.77 \n",
"Failed Legislation 0.56 \n",
"Vetoed Bills (w/o Override) 1.20 \n",
"Other Legislation 1.07 \n",
"TOTAL 1.01 \n",
"Enacted Laws % 0.83 \n",
"Passed Resolutions % 0.62 \n",
"Got A Vote % 0.79 \n",
"Failed Legislation % nan \n",
"Vetoed Bills (w/o Override) % nan \n",
"Other Legislation % 1.05 "
]
},
"execution_count": 626,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"compared"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (ml)",
"language": "python",
"name": "ml"
},
"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.8.0"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment