diff --git a/AudioDataTutorial.ipynb b/AudioDataTutorial.ipynb index 120d745d7165d613bdf9b51eff0990146eaad108..d7ca78bc27e37e670ddb44b85d01d12272c9f0b0 100644 --- a/AudioDataTutorial.ipynb +++ b/AudioDataTutorial.ipynb @@ -47,6 +47,9 @@ "\n", "jtplot.style()\n", "\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "\n", "%matplotlib inline" ] }, @@ -61,7 +64,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Download audio file *6_Channel_ID.wav* from http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav" + "Download audio file *6_Channel_ID.wav* from http://www.mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav" ] }, { @@ -72,7 +75,7 @@ "source": [ "import requests\n", "\n", - "url = 'http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav'\n", + "url = 'http://www.mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav'\n", "file='6_Channel_ID.wav'\n", "r = requests.get(url, allow_redirects=True)\n", "open(file, 'wb').write(r.content)" @@ -95,9 +98,7 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "scrolled": false - }, + "metadata": {}, "outputs": [], "source": [ "Fs, data = read('6_Channel_ID.wav')\n", @@ -264,6 +265,7 @@ "plt.xlabel('Sample Index')\n", "plt.ylabel('Amplitude')\n", "plt.title('Waveform of Test Audio')\n", + "plt.legend(['FL', 'FR', 'FC', 'LF', 'BF', 'BR'], bbox_to_anchor=(1.05, 1.0), loc='upper left')\n", "plt.show()" ] }, @@ -299,7 +301,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.9.15" } }, "nbformat": 4, diff --git a/Auto-SKLearn_AutoML/Classification.ipynb b/Auto-SKLearn_AutoML/Classification.ipynb index d4dfef7e13a64b026fb5f08334a570d8dfaba3fc..57391f91c37791f41850721ac11e14e56af26d18 100644 --- a/Auto-SKLearn_AutoML/Classification.ipynb +++ b/Auto-SKLearn_AutoML/Classification.ipynb @@ -1,226 +1,4 @@ { -<<<<<<< HEAD - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Classification.ipynb", - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } - }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Classification Using Auto-SKLearn", - "\n", - "**_NOTE_** autosklearn only will run in linux (feb 26, 2022)\n", - "\n" - ], - "metadata": { - "id": "-I9i52jCjML_" - } - }, - { - "cell_type": "markdown", - "source": [ - "[](https://colab.research.google.com/github/mcint170/DataTools_Tutorial_Demo/blob/main/Auto-SKLearn_AutoML/Classification.ipynb)" - ], - "metadata": { - "id": "-ZrgwiL9kR_L" - } - }, - { - "cell_type": "code", - "source": [ - "!pip install auto-sklearn" - ], - "metadata": { - "id": "XAjlAHVRenet" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "If running on Google Colab: After running this cell, Click Runtime -> Restart runtime. Then you can run the following cells." - ], - "metadata": { - "id": "yqIcMA8hgZ8W" - } - }, - { - "cell_type": "code", - "source": [ - "# imports\n", - "from pprint import pprint\n", - "\n", - "import sklearn.datasets\n", - "import sklearn.metrics\n", - "import pickle\n", - "\n", - "import autosklearn.classification" - ], - "metadata": { - "id": "BXuKNodQe7QZ" - }, - "execution_count": 4, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# split the dataset\n", - "X, y = sklearn.datasets.load_breast_cancer(return_X_y=True)\n", - "X_train, X_test, y_train, y_test = \\\n", - " sklearn.model_selection.train_test_split(X, y, random_state=1)" - ], - "metadata": { - "id": "ExulDsEAfAoO" - }, - "execution_count": 5, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Fit the classifier\n", - "automl = autosklearn.classification.AutoSklearnClassifier(\n", - " time_left_for_this_task=120,\n", - " per_run_time_limit=30,\n", - " tmp_folder='/tmp/autosklearn_classification_example_tmp',\n", - ")\n", - "automl.fit(X_train, y_train, dataset_name='breast_cancer')" - ], - "metadata": { - "id": "-0zi5I38fNMM", - "colab": { - "base_uri": "https://localhost:8080/" - }, - "outputId": "e732438b-610c-4d82-bd38-b1a5497541c6" - }, - "execution_count": 6, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "AutoSklearnClassifier(per_run_time_limit=30, time_left_for_this_task=120,\n", - " tmp_folder='/tmp/autosklearn_classification_example_tmp')" - ] - }, - "metadata": {}, - "execution_count": 6 - } - ] - }, - { - "cell_type": "code", - "source": [ - "# Different Models run by autosklearn\n", - "print(automl.leaderboard())" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "SxtOkluYiVHe", - "outputId": "29e44357-b2cb-404d-a024-cda5bd61b65a" - }, - "execution_count": 7, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - " rank ensemble_weight type cost duration\n", - "model_id \n", - "7 1 0.10 extra_trees 0.014184 1.502508\n", - "2 2 0.02 random_forest 0.028369 2.024807\n", - "36 3 0.06 k_nearest_neighbors 0.028369 0.853534\n", - "26 4 0.04 extra_trees 0.028369 2.240347\n", - "19 5 0.02 extra_trees 0.028369 2.791073\n", - "22 6 0.02 gradient_boosting 0.028369 1.149980\n", - "3 7 0.14 mlp 0.028369 1.667622\n", - "12 8 0.04 gradient_boosting 0.035461 1.240657\n", - "17 9 0.02 gradient_boosting 0.035461 1.510491\n", - "8 10 0.02 random_forest 0.035461 1.958862\n", - "37 11 0.06 gradient_boosting 0.035461 1.585859\n", - "5 12 0.04 random_forest 0.035461 2.075770\n", - "27 13 0.10 extra_trees 0.042553 1.910083\n", - "34 14 0.08 random_forest 0.042553 1.884860\n", - "9 15 0.04 extra_trees 0.042553 1.799630\n", - "23 16 0.02 mlp 0.049645 2.405247\n", - "35 17 0.06 extra_trees 0.056738 1.586217\n", - "32 18 0.02 extra_trees 0.063830 1.650489\n", - "38 19 0.02 extra_trees 0.063830 2.128083\n", - "20 20 0.02 passive_aggressive 0.078014 0.774718\n", - "30 21 0.04 adaboost 0.078014 3.121010\n", - "29 22 0.02 gaussian_nb 0.141844 1.951357\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "# Show the different models\n", - "pprint(automl.show_models(), indent=4)" - ], - "metadata": { - "id": "25xOtCJ7icgh" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "# Predict the test labels\n", - "predictions = automl.predict(X_test)\n", - "print(\"Accuracy score:\", sklearn.metrics.accuracy_score(y_test, predictions))" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "XvbhWaZpidYt", - "outputId": "7a153d86-4d3b-474a-f867-8adf7e07318b" - }, - "execution_count": 9, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Accuracy score: 0.9440559440559441\n" - ] - } - ] - }, - { - "cell_type": "code", - "source": [ - "# Export the model with the highest rank\n", - "clf = automl.show_models()[7]['sklearn_classifier']\n", - "pickle.dump(clf,open('model.pickle','wb'))" - ], - "metadata": { - "id": "iCFcuh9EikR_" - }, - "execution_count": 10, - "outputs": [] - } - ] -======= "cells": [ { "cell_type": "markdown", @@ -234,26 +12,56 @@ "Example coming from [here](https://automl.github.io/auto-sklearn/master/examples/20_basic/example_classification.html#sphx-glr-examples-20-basic-example-classification-py)" ] }, + { + "cell_type": "markdown", + "id": "c5dad4c0", + "metadata": {}, + "source": [ + "**Classification doesn't work with current version of scipy/github and requires different packages/updates to run notebook**\n", + "- Note from professor Colbry: Notebook can't be fixed in classtime, write note of what needs to be fixed and push to gitlab as is." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 23, "id": "c69433ce", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "ImportError", + "evalue": "cannot import name 'apply' from 'dask.compatibility' (/home/weinbren/.local/lib/python3.8/site-packages/dask/compatibility.py)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-23-910f3a285265>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mpickle\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mautosklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclassification\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/autosklearn/classification.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mautosklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mestimators\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mAutoSklearnClassifier\u001b[0m \u001b[0;31m# noqa (imported but unused)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/autosklearn/estimators.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mwarnings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdistributed\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mjoblib\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mnumpy\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/.local/lib/python3.8/site-packages/dask/distributed.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mdistributed\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mImportError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmsg\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m\"No module named 'distributed'\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/anaconda3/lib/python3.8/site-packages/distributed/__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0m_version\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mget_versions\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mactor\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mActor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mActorFuture\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m from .client import (\n\u001b[1;32m 9\u001b[0m \u001b[0mClient\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/anaconda3/lib/python3.8/site-packages/distributed/actor.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mqueue\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mQueue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mclient\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mFuture\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdefault_client\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mprotocol\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mto_serialize\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0miscoroutinefunction\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msync\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mthread_state\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/opt/anaconda3/lib/python3.8/site-packages/distributed/client.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 29\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbase\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mcollections_to_dsk\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormalize_token\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtokenize\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 30\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompatibility\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mapply\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 31\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mflatten\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 32\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mdask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhighlevelgraph\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mHighLevelGraph\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mImportError\u001b[0m: cannot import name 'apply' from 'dask.compatibility' (/home/weinbren/.local/lib/python3.8/site-packages/dask/compatibility.py)" + ] + } + ], "source": [ "# imports\n", "from pprint import pprint\n", "\n", "import sklearn.datasets\n", "import sklearn.metrics\n", + "# Fixed import model_selection\n", + "import sklearn.model_selection\n", "import pickle\n", "\n", - "import autosklearn.classification" + "# This does not work on current version of github, needs update. \n", + "import autosklearn.classification\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "2b1e1930", "metadata": {}, "outputs": [], @@ -266,10 +74,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "15e5f821", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "AttributeError", + "evalue": "module 'autosklearn' has no attribute 'classification'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-22-6c1473e893d3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Fit the classifier\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m automl = autosklearn.classification.AutoSklearnClassifier(\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mtime_left_for_this_task\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m120\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mper_run_time_limit\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m30\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mtmp_folder\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'/tmp/autosklearn_classification_example_tmp'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mAttributeError\u001b[0m: module 'autosklearn' has no attribute 'classification'" + ] + } + ], "source": [ "# Fit the classifier\n", "automl = autosklearn.classification.AutoSklearnClassifier(\n", @@ -282,10 +102,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "2d4e4d9f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'automl' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-11-6dfffdcd8374>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Different Models run by autosklearn\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautoml\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mleaderboard\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'automl' is not defined" + ] + } + ], "source": [ "# Different Models run by autosklearn\n", "print(automl.leaderboard())" @@ -293,10 +125,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "72e580e7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'automl' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-12-ab76765f6a20>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Show the different models\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mpprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mautoml\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow_models\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindent\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'automl' is not defined" + ] + } + ], "source": [ "# Show the different models\n", "pprint(automl.show_models(), indent=4)" @@ -304,10 +148,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "027039cd", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'automl' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-13-596897413c8d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Predict the test labels\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mpredictions\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mautoml\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Accuracy score:\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmetrics\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maccuracy_score\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpredictions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'automl' is not defined" + ] + } + ], "source": [ "# Predict the test labels\n", "predictions = automl.predict(X_test)\n", @@ -316,10 +172,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "acd372ea", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'automl' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-14-14e40d77d77d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Export the model with the highest rank\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mclf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mautoml\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow_models\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m7\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'sklearn_classifier'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mpickle\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdump\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mclf\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'model.pickle'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'wb'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'automl' is not defined" + ] + } + ], "source": [ "# Export the model with the highest rank\n", "clf = automl.show_models()[7]['sklearn_classifier']\n", @@ -328,10 +196,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "a3324782", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'clf' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m<ipython-input-15-b9c89d294f77>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mclf\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'clf' is not defined" + ] + } + ], "source": [ "clf" ] @@ -347,7 +227,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -361,10 +241,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.8" } }, "nbformat": 4, "nbformat_minor": 5 ->>>>>>> 7e6d5ac (Adding minor comments and updates to AutoML tutorial) } diff --git a/Classification.ipynb b/Classification.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..8cc48163f8a88f574ac1eea8f8d957d869cd36a7 --- /dev/null +++ b/Classification.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "8459055e", + "metadata": {}, + "source": [ + "# Classification\n", + "\n", + "**_NOTE_** autosklearn only will run in linux (feb 26, 2022)\n", + "\n", + "Example coming from [here](https://automl.github.io/auto-sklearn/master/examples/20_basic/example_classification.html#sphx-glr-examples-20-basic-example-classification-py)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c69433ce", + "metadata": {}, + "outputs": [], + "source": [ + "# imports\n", + "from pprint import pprint\n", + "\n", + "import sklearn.datasets\n", + "import sklearn.metrics\n", + "import pickle\n", + "\n", + "import autosklearn.classification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b1e1930", + "metadata": {}, + "outputs": [], + "source": [ + "# split the dataset\n", + "X, y = sklearn.datasets.load_breast_cancer(return_X_y=True)\n", + "X_train, X_test, y_train, y_test = \\\n", + " sklearn.model_selection.train_test_split(X, y, random_state=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "15e5f821", + "metadata": {}, + "outputs": [], + "source": [ + "# Fit the classifier\n", + "automl = autosklearn.classification.AutoSklearnClassifier(\n", + " time_left_for_this_task=120,\n", + " per_run_time_limit=30,\n", + " tmp_folder='/tmp/autosklearn_classification_example_tmp',\n", + ")\n", + "automl.fit(X_train, y_train, dataset_name='breast_cancer')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2d4e4d9f", + "metadata": {}, + "outputs": [], + "source": [ + "# Different Models run by autosklearn\n", + "print(automl.leaderboard())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "72e580e7", + "metadata": {}, + "outputs": [], + "source": [ + "# Show the different models\n", + "pprint(automl.show_models(), indent=4)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "027039cd", + "metadata": {}, + "outputs": [], + "source": [ + "# Predict the test labels\n", + "predictions = automl.predict(X_test)\n", + "print(\"Accuracy score:\", sklearn.metrics.accuracy_score(y_test, predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "acd372ea", + "metadata": {}, + "outputs": [], + "source": [ + "# Export the model with the highest rank\n", + "clf = automl.show_models()[7]['sklearn_classifier']\n", + "pickle.dump(clf,open('model.pickle','wb'))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a3324782", + "metadata": {}, + "outputs": [], + "source": [ + "clf" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "021b7159", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/GAMA_AutoML_Tutorial.ipynb b/GAMA_AutoML_Tutorial.ipynb index 9b90d1f2eb218cbc0794e17ac87836c9cc771e95..800dd5aea63c151ac5b45632a2536917399731d4 100644 --- a/GAMA_AutoML_Tutorial.ipynb +++ b/GAMA_AutoML_Tutorial.ipynb @@ -26,6 +26,19 @@ "Image source: https://github.com/openml-labs/gama/raw/master/images/logos/Logo-With-Grey-Name-Transparent.png" ] }, + { + "cell_type": "markdown", + "id": "481fae1c", + "metadata": {}, + "source": [ + "## View Documentation At:\n", + "* https://openml-labs.github.io/gama/master/\n", + "* https://github.com/openml-labs/gama\n", + "* https://openml-labs.github.io/gama/master/index.html\n", + "* https://openml-labs.github.io/gama/master/user_guide/index.html#dashboard\n", + "* https://openml-labs.github.io/gama/master/api/index.html" + ] + }, { "cell_type": "markdown", "id": "25258b82", @@ -49,7 +62,9 @@ "metadata": {}, "outputs": [], "source": [ - "# pip install gama" + "# pip install gama\n", + "# *or*\n", + "# pip3 install gama " ] }, { @@ -88,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "00a14ad0", "metadata": {}, "outputs": [], @@ -162,32 +177,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "a43e62f3", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Starting `fit` which will take roughly 3 minutes...\n" - ] - }, - { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_25136/719449767.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mautoml\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGamaClassifier\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmax_total_time\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m180\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstore\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"nothing\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_jobs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Starting `fit` which will take roughly 3 minutes...\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 13\u001b[1;33m \u001b[0mautoml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 14\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[0mlabel_predictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mautoml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\REPOS\\DataTools_Tutorial_Demo\\envs_gama\\lib\\site-packages\\gama\\GamaClassifier.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, *args, **kwargs)\u001b[0m\n\u001b[0;32m 132\u001b[0m \u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_label_encoder\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtransform\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0my_\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 133\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_evaluation_library\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdetermine_sample_indices\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstratify\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 134\u001b[1;33m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 135\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_encode_labels\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\REPOS\\DataTools_Tutorial_Demo\\envs_gama\\lib\\site-packages\\gama\\gama.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, warm_start)\u001b[0m\n\u001b[0;32m 537\u001b[0m )\n\u001b[0;32m 538\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_post_processing\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdynamic_defaults\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 539\u001b[1;33m self.model = self._post_processing.post_process(\n\u001b[0m\u001b[0;32m 540\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_x\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 541\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_y\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\REPOS\\DataTools_Tutorial_Demo\\envs_gama\\lib\\site-packages\\gama\\postprocessing\\best_fit.py\u001b[0m in \u001b[0;36mpost_process\u001b[1;34m(self, x, y, timeout, selection)\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSeries\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mIndividual\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 25\u001b[0m ) -> object:\n\u001b[1;32m---> 26\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_selected_individual\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mselection\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 27\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_selected_individual\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpipeline\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mIndexError\u001b[0m: list index out of range" - ] - } - ], + "outputs": [], "source": [ "from sklearn.datasets import load_breast_cancer\n", "from sklearn.model_selection import train_test_split\n", @@ -210,6 +203,14 @@ "print(\"log loss:\", log_loss(y_test, probability_predictions))" ] }, + { + "cell_type": "markdown", + "id": "1bfbb41b", + "metadata": {}, + "source": [ + "Some issues with the classifier receiving \"ValueError: population must be at least of size 3 for a pair to be selected\"" + ] + }, { "cell_type": "markdown", "id": "de9afff2", @@ -222,31 +223,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "35f68b4c", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Starting `fit` which will take roughly 3 minutes...\n" - ] - }, - { - "ename": "IndexError", - "evalue": "list index out of range", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m~\\AppData\\Local\\Temp/ipykernel_25136/3966760049.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[0mautoml\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mGamaRegressor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmax_total_time\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m180\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstore\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"nothing\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_jobs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Starting `fit` which will take roughly 3 minutes...\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[0mautoml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mautoml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpredict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_test\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\REPOS\\DataTools_Tutorial_Demo\\envs_gama\\lib\\site-packages\\gama\\gama.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, x, y, warm_start)\u001b[0m\n\u001b[0;32m 537\u001b[0m )\n\u001b[0;32m 538\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_post_processing\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdynamic_defaults\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 539\u001b[1;33m self.model = self._post_processing.post_process(\n\u001b[0m\u001b[0;32m 540\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_x\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 541\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_y\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\REPOS\\DataTools_Tutorial_Demo\\envs_gama\\lib\\site-packages\\gama\\postprocessing\\best_fit.py\u001b[0m in \u001b[0;36mpost_process\u001b[1;34m(self, x, y, timeout, selection)\u001b[0m\n\u001b[0;32m 24\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSeries\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mfloat\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mselection\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mIndividual\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 25\u001b[0m ) -> object:\n\u001b[1;32m---> 26\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_selected_individual\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mselection\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 27\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_selected_individual\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpipeline\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 28\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mIndexError\u001b[0m: list index out of range" - ] - } - ], + "outputs": [], "source": [ "from sklearn.datasets import load_boston\n", "from sklearn.model_selection import train_test_split\n", @@ -282,25 +262,6 @@ "\n" ] }, - { - "cell_type": "markdown", - "id": "ffdabb07", - "metadata": {}, - "source": [ - "## References" - ] - }, - { - "cell_type": "markdown", - "id": "500eb430", - "metadata": {}, - "source": [ - "* https://github.com/openml-labs/gama\n", - "* https://openml-labs.github.io/gama/master/index.html\n", - "* https://openml-labs.github.io/gama/master/user_guide/index.html#dashboard\n", - "* https://openml-labs.github.io/gama/master/api/index.html" - ] - }, { "cell_type": "markdown", "id": "e0a28b97", @@ -326,7 +287,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.15" } }, "nbformat": 4, diff --git a/GUI_Tutorial.ipynb b/GUI_Tutorial.ipynb index fa8b1c55a2b2113e4a382c779c0b516a4180b3fb..cf8fe234bf93fdbe7bb55888bfe4a06bda199941 100644 --- a/GUI_Tutorial.ipynb +++ b/GUI_Tutorial.ipynb @@ -2,7 +2,6 @@ "cells": [ { "cell_type": "markdown", - "id": "7227f3fa", "metadata": {}, "source": [ "## Gradio: How you can build a GUI within a Jupyter Notebook\n", @@ -12,7 +11,17 @@ }, { "cell_type": "markdown", - "id": "ba81c68d", + "metadata": {}, + "source": [ + "## GUI Background\n", + "A graphical user interface (GUI) is an interface through which a user interacts with electronic devices such as computers and smartphones through the use of icons, menus and other visual indicators or representations (graphics). GUIs graphically display information and related user controls, unlike text-based interfaces, where data and commands are strictly in text. GUI representations are manipulated by a pointing device such as a mouse, trackball, stylus, or by a finger on a touch screen.\n", + "\n", + "Source: \n", + "https://www.techopedia.com/definition/5435/graphical-user-interface-gui" + ] + }, + { + "cell_type": "markdown", "metadata": {}, "source": [ "## Getting Started\n", @@ -22,15 +31,17 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "id": "cdfdbb3e", - "metadata": {}, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Python 3.9.7\r\n" + "Python 3.8.2\r\n" ] } ], @@ -38,9 +49,17 @@ "!python --version" ] }, + { + "cell_type": "markdown", + "id": "b8de36df", + "metadata": {}, + "source": [ + "On your terminal," + ] + }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "8f5edb3b", "metadata": {}, "outputs": [], @@ -50,7 +69,6 @@ }, { "cell_type": "markdown", - "id": "f76c9232", "metadata": {}, "source": [ "Next, import the library as follows:" @@ -58,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "id": "227461d8", "metadata": { "scrolled": false @@ -70,7 +88,6 @@ }, { "cell_type": "markdown", - "id": "c3d4eb50", "metadata": {}, "source": [ "Gradio can be used with a wide range of media-text, pictures, video, and sound. It is most useful for demonstrating machine learning algorithms.\n", @@ -80,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "id": "92c83d6b", "metadata": { "scrolled": true @@ -90,7 +107,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Running on local URL: http://127.0.0.1:7860/\n", + "Running on local URL: http://127.0.0.1:7860\n", "\n", "To create a public link, set `share=True` in `launch()`.\n" ] @@ -98,19 +115,10 @@ { "data": { "text/html": [ - "\n", - " <iframe\n", - " width=\"900\"\n", - " height=\"500\"\n", - " src=\"http://127.0.0.1:7860/\"\n", - " frameborder=\"0\"\n", - " allowfullscreen\n", - " \n", - " ></iframe>\n", - " " + "<div><iframe src=\"http://127.0.0.1:7860/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>" ], "text/plain": [ - "<IPython.lib.display.IFrame at 0x7fcaf03ab5b0>" + "<IPython.core.display.HTML object>" ] }, "metadata": {}, @@ -118,13 +126,9 @@ }, { "data": { - "text/plain": [ - "(<fastapi.applications.FastAPI at 0x7fcac199eee0>,\n", - " 'http://127.0.0.1:7860/',\n", - " None)" - ] + "text/plain": [] }, - "execution_count": 2, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -139,7 +143,6 @@ }, { "cell_type": "markdown", - "id": "8469e7e7", "metadata": {}, "source": [ "### The Interface\n", @@ -152,6 +155,70 @@ "With these components, you can quickly create and launch an interface." ] }, + { + "cell_type": "markdown", + "id": "d4bd4273", + "metadata": {}, + "source": [ + "### Adding additional Inputs:\n", + "\n", + "Suppose you had a more complex function, with multiple inputs and outputs. In the example below, we define a function that takes a string, boolean, and number, and returns a string and number. Take a look how you pass a list of input and output components.\n", + "\n", + "\n", + "Source: https://gradio.app/quickstart/" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "dcc87cd1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Running on local URL: http://127.0.0.1:7861\n", + "\n", + "To create a public link, set `share=True` in `launch()`.\n" + ] + }, + { + "data": { + "text/html": [ + "<div><iframe src=\"http://127.0.0.1:7861/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>" + ], + "text/plain": [ + "<IPython.core.display.HTML object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def greet(name, is_morning, temperature):\n", + " salutation = \"Good morning\" if is_morning else \"Good evening\"\n", + " greeting = f\"{salutation} {name}. It is {temperature} degrees today\"\n", + " celsius = (temperature - 32) * 5 / 9\n", + " return greeting, round(celsius, 2)\n", + "\n", + "demo = gr.Interface(\n", + " fn=greet,\n", + " inputs=[\"text\", \"checkbox\", gr.Slider(0, 100)],\n", + " outputs=[\"text\", \"number\"],\n", + ")\n", + "demo.launch()" + ] + }, { "cell_type": "markdown", "id": "46e5071f", @@ -162,7 +229,6 @@ }, { "cell_type": "markdown", - "id": "94a5d6f2", "metadata": {}, "source": [ "Gradio can load in data, similar to pandas frames, by using the command `gradio.inputs.Dataframe(data_name)`. It can only take in strings, numbers, bools, and dates as data types. Gradio does not contain a library of datasets, so data must be input by the user. It can also work with time series, images, audio, video, and generic file uploads.\n", @@ -185,38 +251,36 @@ }, { "cell_type": "markdown", - "id": "17bf993f", "metadata": {}, "source": [ - "An example of a question could be, what is the conclusion of the sentence.....\n", - "\n", - "Today will be a good day. \n", + "An example of a question could be, what is the conclusion of the sentence: Today will be a good day.\n", "\n", - "For that you would be using a text generation model called GPT-2 and the example given user's Text Interface. \n", + "A user could use Gardio to create an input field, then use the information from that field to generate a response. For example, the input could be sent to a text generation model such as GPT-2 to generate a response. \n", "\n", "For a visual from data, you could create a cat/dog image classification model and Gradio demo to upload new images for class prediction. The model will be a Keras convolutional neural network (CNN) that would be trained on images of cats and dogs as features and their class names as labels" ] }, { "cell_type": "markdown", - "id": "1196a4c1", "metadata": {}, "source": [ "How this data or tool could be used in some of the team projects (maybe not your own)\n", "- For projects with time series modeling\n", " * Hope Village\n", " * Argonne\n", + " (Include example of implemntation here)\n", "- For image analysis\n", " * Neogen\n", " * Ford\n", + " (Include example of implemntation here)\n", "- Machine learning group\n", " * Kelloggs\n", - " * AFRL" + " * AFRL\n", + " (Include example of implemntation here)\n" ] }, { "cell_type": "markdown", - "id": "500e9ab6", "metadata": {}, "source": [ "Sources:<br>\n", @@ -228,7 +292,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -242,7 +306,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.8.2" } }, "nbformat": 4, diff --git a/GoogleSheetsTutorial.ipynb b/GoogleSheetsTutorial.ipynb index 07cc69bf5a396623f335e0d040bdfb2be88c0a12..10f06324ce05b07ae27c234e434c901360b5ed4d 100644 --- a/GoogleSheetsTutorial.ipynb +++ b/GoogleSheetsTutorial.ipynb @@ -34,15 +34,14 @@ " (you must use your personal email not your MSU email)\n", "2. Inside that project enable the Google sheets API and Google Drive for your new project\n", " 1. This is found by using the search bar to search for Google API and Google Drive\n", - "3. Create a Google service account through the Google developer portal\n", - "4. Go to “APIs & Services > Credentials†and choose “Create credentials > Service account keyâ€.\n", - "5. Fill out the form (making sure to add editor privledges to the service account)\n", - "6. Click “Create†and “Doneâ€.\n", - "7. Press “Manage service accounts†above Service Accounts.\n", - "8. Click on “ADD KEY > Create new keyâ€. Jiaye Xie\n", - "9. Select JSON key type and press “Createâ€.\n", - "10. In your python file import gspread\n", - "11. Copy Json key into python file as a dictionary\n", + "3. Go to “APIs & Services > Credentials†and choose “Create credentials > Service account keyâ€.\n", + "4. Fill out the form (making sure to add editor privledges to the service account)\n", + "5. Click “Create†and “Doneâ€.\n", + "6. Press “Manage service accounts†above Service Accounts.\n", + "7. Press on â‹® near recently created service account and select “Manage keys†and then click on “ADD KEY > Create new keyâ€.\n", + "8. Select JSON key type and press “Createâ€.\n", + "9. In your python file import gspread\n", + "10. Copy Json key into python file as a dictionary\n", "\n", "\n", "for more information/ documentation on gspread head here\n", @@ -229,7 +228,7 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -243,7 +242,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb b/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb index 90f8144c64ad0b94ace759a25ef7c5c8fe5d0e67..6ad91ea7e6b75cd579fa491fc6a08f05727d1d83 100644 --- a/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb +++ b/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb @@ -1,44 +1,32 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "Ford_Video_Analysis.ipynb", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } - }, +<<<<<<< HEAD "cells": [ { "cell_type": "markdown", + "metadata": { + "id": "OqSmFS3lZj9Y" + }, "source": [ "# <center> Video Image Data </center>\n", "#### CMSE 495 Ford Group\n", "\n", "This tutorial teaches the user how to input a video file, such a mp4 and convert each frame of the video into a jpeg image using python, primarily in a Jupyter notebook." - ], - "metadata": { - "id": "OqSmFS3lZj9Y" - } + ] }, { "cell_type": "markdown", - "source": [ - "[](https://colab.research.google.com/github/pathakis/DataTools_Tutorial_Demo/blob/main/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb)" - ], "metadata": { "id": "uey1neRTkRwd" - } + }, + "source": [ + "[](https://colab.research.google.com/github/pathakis/DataTools_Tutorial_Demo/blob/main/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb)" + ] }, { "cell_type": "markdown", + "metadata": { + "id": "GQIJxk_kdjT1" + }, "source": [ "<b> Environment Setup (Makefile):</b>\n", "- Use the command 'make innit' automatically set up the environment for you.\n", @@ -61,33 +49,35 @@ "<b> Usage Instructions:</b>\n", "\n", "- The example call shows the format in which this func may be used.\n" - ], - "metadata": { - "id": "GQIJxk_kdjT1" - } + ] }, { "cell_type": "markdown", - "source": [ - "This process uses 2 packages called [os](https://docs.python.org/3/library/os.html) and [cv2](https://pypi.org/project/opencv-python/). Os provides miscellaneous operating system interfaces such as opening and reading the files." - ], "metadata": { "id": "f0aUW4PLdobE" - } + }, + "source": [ + "This process uses 2 packages called [os](https://docs.python.org/3/library/os.html) and [cv2](https://pypi.org/project/opencv-python/). Os provides miscellaneous operating system interfaces such as opening and reading the files." + ] }, { "cell_type": "code", - "source": [ - "# !pip install opencv-python" - ], + "execution_count": null, "metadata": { "id": "JGkN_k3BgXV8" }, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "# !pip install opencv-python" + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "PCbpVR-HZzmt" + }, + "outputs": [], "source": [ "import cv2\n", "import os\n", @@ -128,28 +118,29 @@ " \n", " #releasing the threads\n", " vidcap.release()\n" - ], - "metadata": { - "id": "PCbpVR-HZzmt" - }, - "execution_count": null, - "outputs": [] + ] }, { + "attachments": {}, "cell_type": "markdown", + "metadata": { + "id": "hBfLcvMhh6v7" + }, "source": [ "DEMO FOR THE **avi_to_frames** \n", "\n", - "1. To download a sample avi file that you want to work with, use the following code `urllib.request.urlretrieve('https://www.engr.colostate.edu/me/facil/dynamics/files/drop.avi', 'testing.mp4')` \n", + "1. To download a sample avi file that you want to work with, use the following code `urllib.request.urlretrieve('https://file-examples.com/wp-content/uploads/2018/04/file_example_AVI_480_750kB.avi', 'testing.mp4')` \n", "\n", "2. After the video has been downloaded `avi_frames(./testing.mp4, path_to_where_you_want_the_frames, False)` this will create a folder with frames from the video." - ], - "metadata": { - "id": "hBfLcvMhh6v7" - } + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "-N-hJD11jJjo" + }, + "outputs": [], "source": [ "# Making a Video From Frames\n", "def frames_to_video(directory_path, fps, width, height):\n", @@ -163,15 +154,13 @@ "\n", " cv2.destroyAllWindows()\n", " video.release()" - ], - "metadata": { - "id": "-N-hJD11jJjo" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", + "metadata": { + "id": "sIhvc4DplLkE" + }, "source": [ "DEMO FOR THE **frames_to_video** \n", "\n", @@ -180,46 +169,317 @@ "2. Run the following command (**make the necessary changes in the function call**)`frames_to_video(where_the_frames_are, fps, width, height)`\n", "\n", "3. The video will show up in the current directory." - ], - "metadata": { - "id": "sIhvc4DplLkE" - } + ] }, { "cell_type": "markdown", - "source": [ - "**The code below will put the image arrays into a list.** This snippet of code utilizes glob but packages like os can also be used." - ], "metadata": { "id": "bnfzxPNJeZVS" - } + }, + "source": [ + "**The code below will put the image arrays into a list.** This snippet of code utilizes glob but packages like os can also be used." + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "mLbqPW7SeJd-" + }, + "outputs": [], "source": [ "path = glob.glob(\"./*.jpg\")\n", "images = []\n", "for img in path:\n", " n = cv2.imread(img)\n", " images.append(n)" - ], - "metadata": { - "id": "mLbqPW7SeJd-" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", + "metadata": { + "id": "GIq-_h4wdxWM" + }, "source": [ "<b> References:</b>\n", "- [Managing Environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)\n", "- [Open CV in python](https://pypi.org/project/opencv-python/)\n", "- [Colab Button](https://www.youtube.com/watch?v=RoGZIbwzG5w)" - ], - "metadata": { - "id": "GIq-_h4wdxWM" + ] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "Ford_Video_Analysis.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.9.15" + }, + "vscode": { + "interpreter": { + "hash": "4f3567101b31d35f97cf2856951ebbba1e09a3f852422478e736adda2bb3beee" } } - ] -} \ No newline at end of file + }, + "nbformat": 4, + "nbformat_minor": 0 +======= + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "OqSmFS3lZj9Y" + }, + "source": [ + "# <center> Video Image Data </center>\n", + "#### CMSE 495 Ford Group\n", + "\n", + "This tutorial teaches the user how to input a video file, such a mp4 and convert each frame of the video into a jpeg image using python, primarily in a Jupyter notebook." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uey1neRTkRwd" + }, + "source": [ + "[](https://colab.research.google.com/github/pathakis/DataTools_Tutorial_Demo/blob/main/Video-Image-Data-Tutorial/Ford_Video_Analysis.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GQIJxk_kdjT1" + }, + "source": [ + "<b> Environment Setup (Makefile):</b>\n", + "- Use the command 'make innit' automatically set up the environment for you.\n", + "\n", + "<b> Environment Setup (Manual):</b>\n", + "- Set up new environment using pip/conda (Conda Recommended). Use command \n", + "\n", + " <code> conda create -n envs python=3.10 </code>\n", + "\n", + "- Activate your new environment. Use command \n", + "\n", + " <code> conda activate envs</code>\n", + "\n", + "- Install the requisite packages.Use command \n", + "\n", + " <code> pip install opencv-python</code> or,\n", + "\n", + " <code> conda install -c conda-forge opencv</code>\n", + "\n", + "<b> Usage Instructions:</b>\n", + "\n", + "- The example call shows the format in which this func may be used.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "f0aUW4PLdobE" + }, + "source": [ + "This process uses 2 packages called [os](https://docs.python.org/3/library/os.html) and [cv2](https://pypi.org/project/opencv-python/). Os provides miscellaneous operating system interfaces such as opening and reading the files." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "JGkN_k3BgXV8" + }, + "outputs": [], + "source": [ + "# !pip install opencv-python" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "PCbpVR-HZzmt" + }, + "outputs": [], + "source": [ + "import cv2\n", + "import os\n", + "import glob\n", + "import urllib.request\n", + "\n", + "\n", + "def video_to_frames(file_path, directory_path, greyscale = False):\n", + "\n", + " '''This function will change a video file to a frames'''\n", + " \n", + " #opening the video\n", + " vidcap = cv2.VideoCapture(file_path) \n", + " \n", + " dirname = directory_path\n", + " os.makedirs(dirname, exist_ok=True)\n", + " \n", + " #capturing a frame as well as a boolean value representing whether an image was properly opened\n", + " success,image = vidcap.read()\n", + " \n", + " count = 0\n", + " \n", + " while success:\n", + " \n", + " #this is specifically for foam_segmented.avi\n", + " if greyscale:\n", + " image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)\n", + " \n", + " #writing the image to a the directory path that was specified, \n", + " #if the path specified does not exist then it will be created\n", + " #this finctionality was added so that the images could be stored in a separate folder\n", + " #example of output file names: 1.jpg, 2.jpg, 3.jpg, and so on\n", + " cv2.imwrite(os.path.join(dirname, str(count)+\".jpg\"), image)\n", + " success,image = vidcap.read()\n", + " count += 1\n", + " #All the frames will be added in order\n", + " cv2.waitKey(1) \n", + " \n", + " #releasing the threads\n", + " vidcap.release()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hBfLcvMhh6v7" + }, + "source": [ + "DEMO FOR THE **avi_to_frames** \n", + "\n", + "1. To download a sample avi file that you want to work with, use the following code `urllib.request.urlretrieve('https://www.engr.colostate.edu/me/facil/dynamics/files/drop.avi', 'testing.mp4')` \n", + "\n", + "2. After the video has been downloaded `avi_frames(./testing.mp4, path_to_where_you_want_the_frames, False)` this will create a folder with frames from the video." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "-N-hJD11jJjo" + }, + "outputs": [], + "source": [ + "# Making a Video From Frames\n", + "def frames_to_video(directory_path, fps, width, height):\n", + " fourcc = cv2.VideoWriter_fourcc(*'mp4v')\n", + " video = cv2.VideoWriter('video.avi', fourcc, fps, (width, height))\n", + " num_frames = len([name for name in os.listdir(directory_path) if os.path.isfile(name)])\n", + "\n", + " for j in range(num_frames):\n", + " img = cv2.imread(str(j) + '.jpg')\n", + " video.write(img)\n", + "\n", + " cv2.destroyAllWindows()\n", + " video.release()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sIhvc4DplLkE" + }, + "source": [ + "DEMO FOR THE **frames_to_video** \n", + "\n", + "1. We will be working with the frames that we created using `avi_to_frames`. If you have not created those frames feel free to look at the steps above.\n", + "\n", + "2. Run the following command (**make the necessary changes in the function call**)`frames_to_video(where_the_frames_are, fps, width, height)`\n", + "\n", + "3. The video will show up in the current directory." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "bnfzxPNJeZVS" + }, + "source": [ + "**The code below will put the image arrays into a list.** This snippet of code utilizes glob but packages like os can also be used." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "mLbqPW7SeJd-" + }, + "outputs": [], + "source": [ + "path = glob.glob(\"./*.jpg\")\n", + "images = []\n", + "for img in path:\n", + " n = cv2.imread(img)\n", + " images.append(n)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GIq-_h4wdxWM" + }, + "source": [ + "<b> References:</b>\n", + "- [Managing Environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)\n", + "- [Open CV in python](https://pypi.org/project/opencv-python/)\n", + "- [Colab Button](https://www.youtube.com/watch?v=RoGZIbwzG5w)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Comments:**\n", + "\n", + "The videos is not working, it only downloaded a unavailable video" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "Ford_Video_Analysis.ipynb", + "provenance": [] + }, + "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.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +>>>>>>> 5c328fa (this is a testing comment) +} diff --git a/Zotero_Instructions.ipynb b/Zotero_Instructions.ipynb index de56a5e5536dae704be1911646a6b69e50fa5752..eefc757057c95913fbc15acf9109548874edc13e 100644 --- a/Zotero_Instructions.ipynb +++ b/Zotero_Instructions.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "be2d84ba-8a14-43b5-ade9-d72bf16e7feb", + "id": "fe0487b3", "metadata": {}, "source": [ "# Instructions for using Zotero" @@ -10,7 +10,7 @@ }, { "cell_type": "markdown", - "id": "99e95fb6-8919-4fec-8c59-7cf7a5d12777", + "id": "14cf1248", "metadata": {}, "source": [ "<img src=https://www.zotero.org/static/images/icons/zotero-icon-147-160@2x.png>" @@ -18,7 +18,7 @@ }, { "cell_type": "markdown", - "id": "715e4814-f167-4208-a5a3-669a5942412d", + "id": "f5efcb17", "metadata": {}, "source": [ "## What is Zotero?\n", @@ -27,7 +27,7 @@ }, { "cell_type": "markdown", - "id": "9c849f89-4a92-4465-a3e1-00dd81c3836f", + "id": "85f478fe", "metadata": {}, "source": [ "____\n", @@ -37,7 +37,7 @@ }, { "cell_type": "markdown", - "id": "0b8a6c44-debe-4774-8b03-a7ad7067fba7", + "id": "5829da00", "metadata": {}, "source": [ "## Setup Instructions\n", @@ -48,14 +48,26 @@ }, { "cell_type": "markdown", - "id": "39a855b0-b217-4b01-9d93-e419ede64dfd", + "id": "ae6b0014", + "metadata": {}, + "source": [ + "## Updating Zotero\n", + "\n", + "To update Zotero manually, navigate to the help menu and then click the 'Check for Updates...' button. Please note that you can also manually install the new version of Zotero over the old without losing any data.\n", + "\n", + "To enable automatic updates, open the Config Editor from the Advanced pane of Zotero preferences, and ensure that app.update.auto and app.update.enabled are both set to true.\n" + ] + }, + { + "cell_type": "markdown", + "id": "b06a063d", "metadata": {}, "source": [ "## Instructions for Using Zotero\n", "\n", "To access Zotero, click on the application icon that was created after downloading and installing. \n", "\n", - "Once on the application opens you will be brought to the main page. From here you can do a number of different things including: Adding your own publications, creating new citations, and managing your current citations. \n", + "Once the application opens you will be brought to the main page. From here you can do a number of different things including: Adding your own publications, creating new citations, and managing your current citations. \n", "\n", "Think of zotero like an address book of citations! \n", "\n", @@ -70,9 +82,32 @@ "### Managing Existing Citations\n", "\n", "To manage existing citations, you can click on the citation you want to edit and the same information will pop up just like when creating a new citation.\n", + "\n", + "For online storage to access your citations anywhere you can store up to 300MB for free, but any more than that you need to pay.\n", + "\n", + "Here is the fee chart:\n", + "| Amount | Price |\n", + "| ---: | ---: |\n", + "| 300 MB | Free |\n", + "| 2 GB | \\$20 per year |\n", + "| 6 GB | \\$50 per year |\n", + "| Unlimited | \\$120 per year |\n", + "\n", + "\n", "___" ] }, + { + "cell_type": "markdown", + "id": "a1b8ab6d", + "metadata": {}, + "source": [ + "### Creating New Citations\n", + "There is another setup guide for the broswer collector.\n", + "link:\n", + "https://guides.library.illinoisstate.edu/zotero/connector" + ] + }, { "cell_type": "markdown", "id": "9d845196-f8a8-403d-8161-4287c11b17c0", @@ -85,42 +120,65 @@ }, { "cell_type": "markdown", - "id": "864ec654-9b02-4af0-8d3b-98d468fd2757", + "id": "dabf2d72", "metadata": {}, "source": [ "___\n", "\n", "### For example, if you wanted collect articles containing information pertaining the latest COVID-19 data:\n", "\n", - "You would need to find the articles you need online and upload them into Zotero. There, you can create and store all of your citations in one place (let’s say, in your ‘COVID-19’ folder) for future reference. With the tons of available information online about the pandemic, this will be a good way to keep track of the sources that are the most valuable to you without having to sift through extraneous data. \n", + "You would need to find the articles you need online and upload them into Zotero. There, you can create and store all of your citations in one place (let’s say, in your ‘COVID-19’ folder) for future reference. With the tons of available information online about the pandemic, this will be a good way to keep track of the sources that are the most valuable to you without having to sift through extraneous data. In the info tab there is a section to add URL if you want to.\n", "___" ] }, { "cell_type": "markdown", - "id": "27715217-cf12-428d-95e7-4c86702df82d", + "id": "d619e3e3", "metadata": {}, "source": [ "## How Could Zotero Be Used for Capstone Projects?\n", "\n", - "This tool can be used among every group to store and collect all of a team's citations that will be used throughout the course of the semester. This application will especially be useful to every team since it is able to collect citations and store them for later use. So when a team collects citations for their data, they won't forget where they got the data by the end of the semester.\n", + "This tool can be used among every group to store and collect all of a team's citations that will be used throughout the course of the semester. This application will especially be useful to every team since it is able to collect citations and store them for later use. So when a team collects citations for their data, they won't forget where they got the data by the end of the semester. zbib.org also allows you to share a link to your bibliography page so someone can read your bib in a nice format rather than copying and pasting it in an email. This allows them to see the current version and can revisit the updated information through the link.\n", "___" ] }, { "cell_type": "markdown", - "id": "f4984764-78c9-419f-8081-9a174ce6c952", + "id": "64685988", "metadata": {}, "source": [ "## References\n", "\n", "https://fordham.libguides.com/BibliographicManagement/Zotero#:~:text=Zotero%20is%20a%20free*%20citation,ease%20the%20collection%20of%20citations.\n" ] + }, + { + "attachments": { + "image.png": { + "image/png": "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xJqTpuVasgTlv/mNyfnF33UX7NdcY3JERNFFApHyoP5ylvbtkfTZZyZHRD5s1kVEEaPs0kvhlpkwA1hHjkTiK6+YHBFRdCodNw6eggKT80qYPRs2VU5EfmzWRUQRwfnCC9UCE8HRuYgoFtjOP98s+bm++sosEZEPgxMianWefftQMXOmyfnZLr4YtjPOMDkiouhlO/VUs+TnWrzYLBGRD4MTImp1zuefV9/SLpPzi7/xRrNERBTddHASNHSwTMboWrnS5IhIWLdt22YWiYhanvu77+B4+WWT84v71a9gGTDA5IiIolxiImyTJ5uMX/AcKETHO8uKFSs8/fr1M1kiopZV8cc/wvnmmybnZeneHUkyg7L6MiciilYejweugFph97vvwnnHHSbnZRk4EHGvv25yRMTghIhajXvDBpRddpnJ+SX89a+wXXSRyRERRScJTNLS0mC323XeffQoDo0cqZcDdfzyS9h69TI5ouMb+5wQUatxzptnlvysWVkMTIhayOOPP464uDiTo6YmNSe+wERY27VDQohBPpzbt5slImJwQkStwr11K5xz55qcn/3aa80SEVHssYfoS+favdssERGDEyJqFcH9TISlZ0/YQzTzIiKKFdYQzbdcO3eaJSKKyeDE43HD7XLA5Qw/edxuszYRNTfPnj160sVgcT/+sVmKHm5P9SGQg7nCeE1EUufSQB6POlcGlTUPj/e9K5P6/Nz+5NHJWS1BUovsX9ORZj+ioqICJSUlejmaePe+ZnU9fzyy9+5tlvxcW7eaJSJqYHDiUSdU9eVQQ2rVLwd1ordYrLDa4mCzh58sVqtaladRopYQstakY0fYrrjC5CKfOgvqR6vFhkJHPr45sgRPbf4L/vLdrfi/Vb/BE2sfwOf7F6OwIh829RoRdecYdS6V87nt0Newl6xFiv01dbyliIvbANiOIC5hBZLwtnlxU7J437syqc/P6k8WnezVEiTJ66OE/D5YLBY4nU689NJL+OSTT3S5O4pulqmfFBwuD/YWWrB6vwXLdnuQs9uJnUc9qHC49fP8Zq3K1qePWfJzbNxoloio+Ubrki9hddJtSW6XS31v2XBg81LkbluuToxO7wWEOTP6Lgz0v/5ixMfZ0bH/WHQfeGLlNoioeXgOHULpmWeanF/8738P+09+YnKRzXdR6XI7sejQXLx34HV1HknEgLQh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" + } + }, + "cell_type": "markdown", + "id": "412467a4", + "metadata": {}, + "source": [ + "" + ] + }, + { + "cell_type": "markdown", + "id": "1bacd6c7", + "metadata": {}, + "source": [ + "Above is an image of the references for this notebook in zotero. \n", + "\n", + "Click on the + sign to create a document and then the paperclip to link a URL to it to reference it." + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -134,7 +192,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.9.16" } }, "nbformat": 4, diff --git a/censusdata_package_tutorial/Censusdata_tutorial.ipynb b/censusdata_package_tutorial/Censusdata_tutorial.ipynb index a52861ac3460cbfe31c6991cafd8f4878c69f74f..f419c6342ee67d2a5e2b52d3b3226e7385b19120 100644 --- a/censusdata_package_tutorial/Censusdata_tutorial.ipynb +++ b/censusdata_package_tutorial/Censusdata_tutorial.ipynb @@ -30,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "83acab08", "metadata": {}, "outputs": [], @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "333e3815", "metadata": {}, "outputs": [], @@ -71,7 +71,7 @@ "**Parameters:**\t\n", "* src (str) – Census data source: ```‘acs1’``` for **ACS 1-year estimates**, ```‘acs5’``` for **ACS 5-year estimates**, ```‘acs3’``` for **ACS 3-year estimates**, ```‘acsse’``` for **ACS 1-year supplemental estimates**, ```‘sf1’``` for **SF1 data**.\n", "* year (int) – Year of data.\n", - "* field (str) – Field in which to search.\n", + "* field (str) – Field in which to search (ex. label, concept).\n", "* criterion (str or function) – Search criterion. Either string to search for, or a function which will be passed the value of field and return True if a match and False otherwise.\n", "* tabletype (str, optional) – Type of table from which variables are drawn (only applicable to ACS data). Options are ```‘detail’``` (detail tables), ```‘subject’``` (subject tables), ```‘profile’``` (data profile tables), ```‘cprofile’``` (comparison profile tables).\n", "\n", @@ -94,10 +94,3017 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "8e00d1b3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[('B01003_001E', 'TOTAL POPULATION', 'Estimate!!Total'),\n", + " ('B05006PR_001E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:'),\n", + " ('B05006PR_002E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:'),\n", + " ('B05006PR_003E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe'),\n", + " ('B05006PR_004E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe'),\n", + " ('B05006PR_005E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:'),\n", + " ('B05006PR_006E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Spain'),\n", + " ('B05006PR_007E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Other Southern Europe'),\n", + " ('B05006PR_008E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe'),\n", + " ('B05006PR_009E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Europe:!!Europe, n.e.c.'),\n", + " ('B05006PR_010E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:'),\n", + " ('B05006PR_011E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:'),\n", + " ('B05006PR_012E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:'),\n", + " ('B05006PR_013E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!China, excluding Taiwan'),\n", + " ('B05006PR_014E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Taiwan'),\n", + " ('B05006PR_015E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Korea'),\n", + " ('B05006PR_016E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Other Eastern Asia'),\n", + " ('B05006PR_017E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia'),\n", + " ('B05006PR_018E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia'),\n", + " ('B05006PR_019E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia'),\n", + " ('B05006PR_020E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Asia:!!Asia,n.e.c.'),\n", + " ('B05006PR_021E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Africa'),\n", + " ('B05006PR_022E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Oceania'),\n", + " ('B05006PR_023E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:'),\n", + " ('B05006PR_024E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:'),\n", + " ('B05006PR_025E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:'),\n", + " ('B05006PR_026E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Cuba'),\n", + " ('B05006PR_027E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominican Republic'),\n", + " ('B05006PR_028E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Haiti'),\n", + " ('B05006PR_029E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Other Caribbean'),\n", + " ('B05006PR_030E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:'),\n", + " ('B05006PR_031E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Mexico'),\n", + " ('B05006PR_032E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Costa Rica'),\n", + " ('B05006PR_033E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!El Salvador'),\n", + " ('B05006PR_034E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Guatemala'),\n", + " ('B05006PR_035E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Honduras'),\n", + " ('B05006PR_036E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Panama'),\n", + " ('B05006PR_037E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Other Central America'),\n", + " ('B05006PR_038E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:'),\n", + " ('B05006PR_039E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Argentina'),\n", + " ('B05006PR_040E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Chile'),\n", + " ('B05006PR_041E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Colombia'),\n", + " ('B05006PR_042E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Ecuador'),\n", + " ('B05006PR_043E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Peru'),\n", + " ('B05006PR_044E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Venezuela'),\n", + " ('B05006PR_045E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Other South America'),\n", + " ('B05006PR_046E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN PUERTO RICO',\n", + " 'Estimate!!Total:!!Americas:!!Northern America'),\n", + " ('B05006_001E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:'),\n", + " ('B05006_002E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:'),\n", + " ('B05006_003E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:'),\n", + " ('B05006_004E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!Ireland'),\n", + " ('B05006_005E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!Denmark'),\n", + " ('B05006_006E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!Norway'),\n", + " ('B05006_007E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!Sweden'),\n", + " ('B05006_008E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):'),\n", + " ('B05006_009E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!United Kingdom, excluding England and Scotland'),\n", + " ('B05006_010E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!England'),\n", + " ('B05006_011E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!United Kingdom (inc. Crown Dependencies):!!Scotland'),\n", + " ('B05006_012E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Northern Europe:!!Other Northern Europe'),\n", + " ('B05006_013E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:'),\n", + " ('B05006_014E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!Austria'),\n", + " ('B05006_015E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!Belgium'),\n", + " ('B05006_016E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!France'),\n", + " ('B05006_017E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!Germany'),\n", + " ('B05006_018E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!Netherlands'),\n", + " ('B05006_019E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!Switzerland'),\n", + " ('B05006_020E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Western Europe:!!Other Western Europe'),\n", + " ('B05006_021E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:'),\n", + " ('B05006_022E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Greece'),\n", + " ('B05006_023E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Italy'),\n", + " ('B05006_024E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Portugal'),\n", + " ('B05006_025E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Portugal!!Azores Islands'),\n", + " ('B05006_026E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Spain'),\n", + " ('B05006_027E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Southern Europe:!!Other Southern Europe'),\n", + " ('B05006_028E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:'),\n", + " ('B05006_029E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Albania'),\n", + " ('B05006_030E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Belarus'),\n", + " ('B05006_031E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Bosnia and Herzegovina'),\n", + " ('B05006_032E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Bulgaria'),\n", + " ('B05006_033E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Croatia'),\n", + " ('B05006_034E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Czechoslovakia (includes Czech Republic and Slovakia)'),\n", + " ('B05006_035E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Hungary'),\n", + " ('B05006_036E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Latvia'),\n", + " ('B05006_037E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Lithuania'),\n", + " ('B05006_038E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!North Macedonia (Macedonia)'),\n", + " ('B05006_039E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Moldova'),\n", + " ('B05006_040E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Poland'),\n", + " ('B05006_041E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Romania'),\n", + " ('B05006_042E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Russia'),\n", + " ('B05006_043E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Serbia'),\n", + " ('B05006_044E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Ukraine'),\n", + " ('B05006_045E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Eastern Europe:!!Other Eastern Europe'),\n", + " ('B05006_046E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Europe:!!Europe, n.e.c.'),\n", + " ('B05006_047E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:'),\n", + " ('B05006_048E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:'),\n", + " ('B05006_049E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:'),\n", + " ('B05006_050E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!China, excluding Hong Kong and Taiwan'),\n", + " ('B05006_051E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Hong Kong'),\n", + " ('B05006_052E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!China:!!Taiwan'),\n", + " ('B05006_053E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Japan'),\n", + " ('B05006_054E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Korea'),\n", + " ('B05006_055E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Eastern Asia:!!Other Eastern Asia'),\n", + " ('B05006_056E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:'),\n", + " ('B05006_057E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Afghanistan'),\n", + " ('B05006_058E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Bangladesh'),\n", + " ('B05006_059E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!India'),\n", + " ('B05006_060E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Iran'),\n", + " ('B05006_061E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Kazakhstan'),\n", + " ('B05006_062E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Nepal'),\n", + " ('B05006_063E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Pakistan'),\n", + " ('B05006_064E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Sri Lanka'),\n", + " ('B05006_065E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Uzbekistan'),\n", + " ('B05006_066E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Central Asia:!!Other South Central Asia'),\n", + " ('B05006_067E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:'),\n", + " ('B05006_068E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Burma'),\n", + " ('B05006_069E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Cambodia'),\n", + " ('B05006_070E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Indonesia'),\n", + " ('B05006_071E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Laos'),\n", + " ('B05006_072E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Malaysia'),\n", + " ('B05006_073E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Philippines'),\n", + " ('B05006_074E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Singapore'),\n", + " ('B05006_075E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Thailand'),\n", + " ('B05006_076E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Vietnam'),\n", + " ('B05006_077E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!South Eastern Asia:!!Other South Eastern Asia'),\n", + " ('B05006_078E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:'),\n", + " ('B05006_079E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Armenia'),\n", + " ('B05006_080E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Iraq'),\n", + " ('B05006_081E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Israel'),\n", + " ('B05006_082E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Jordan'),\n", + " ('B05006_083E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Kuwait'),\n", + " ('B05006_084E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Lebanon'),\n", + " ('B05006_085E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Saudi Arabia'),\n", + " ('B05006_086E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Syria'),\n", + " ('B05006_087E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Turkey'),\n", + " ('B05006_088E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Yemen'),\n", + " ('B05006_089E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Western Asia:!!Other Western Asia'),\n", + " ('B05006_090E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Asia:!!Asia,n.e.c.'),\n", + " ('B05006_091E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:'),\n", + " ('B05006_092E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:'),\n", + " ('B05006_093E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Eritrea'),\n", + " ('B05006_094E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Ethiopia'),\n", + " ('B05006_095E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Kenya'),\n", + " ('B05006_096E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Somalia'),\n", + " ('B05006_097E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Uganda'),\n", + " ('B05006_098E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Zimbabwe'),\n", + " ('B05006_099E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Eastern Africa:!!Other Eastern Africa'),\n", + " ('B05006_100E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Middle Africa:'),\n", + " ('B05006_101E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Middle Africa:!!Cameroon'),\n", + " ('B05006_102E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Middle Africa:!!Congo'),\n", + " ('B05006_103E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Middle Africa:!!Democratic Republic of Congo (Zaire)'),\n", + " ('B05006_104E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Middle Africa:!!Other Middle Africa'),\n", + " ('B05006_105E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Northern Africa:'),\n", + " ('B05006_106E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Northern Africa:!!Egypt'),\n", + " ('B05006_107E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Northern Africa:!!Morocco'),\n", + " ('B05006_108E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Northern Africa:!!Sudan'),\n", + " ('B05006_109E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Northern Africa:!!Other Northern Africa'),\n", + " ('B05006_110E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Southern Africa:'),\n", + " ('B05006_111E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Southern Africa:!!South Africa'),\n", + " ('B05006_112E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Southern Africa:!!Other Southern Africa'),\n", + " ('B05006_113E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:'),\n", + " ('B05006_114E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Cabo Verde'),\n", + " ('B05006_115E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Ghana'),\n", + " ('B05006_116E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Liberia'),\n", + " ('B05006_117E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Nigeria'),\n", + " ('B05006_118E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Senegal'),\n", + " ('B05006_119E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Sierra Leone'),\n", + " ('B05006_120E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Western Africa:!!Other Western Africa'),\n", + " ('B05006_121E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Africa:!!Africa, n.e.c.'),\n", + " ('B05006_122E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:'),\n", + " ('B05006_123E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:'),\n", + " ('B05006_124E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Australia'),\n", + " ('B05006_125E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:!!Australia and New Zealand Subregion:!!Other Australian and New Zealand Subregion'),\n", + " ('B05006_126E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:!!Fiji'),\n", + " ('B05006_127E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:!!Micronesia'),\n", + " ('B05006_128E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Oceania:!!Oceania, n.e.c.'),\n", + " ('B05006_129E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:'),\n", + " ('B05006_130E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:'),\n", + " ('B05006_131E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:'),\n", + " ('B05006_132E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Bahamas'),\n", + " ('B05006_133E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Barbados'),\n", + " ('B05006_134E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Cuba'),\n", + " ('B05006_135E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominica'),\n", + " ('B05006_136E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Dominican Republic'),\n", + " ('B05006_137E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Grenada'),\n", + " ('B05006_138E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Haiti'),\n", + " ('B05006_139E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Jamaica'),\n", + " ('B05006_140E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!St. Vincent and the Grenadines'),\n", + " ('B05006_141E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Trinidad and Tobago'),\n", + " ('B05006_142E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!West Indies'),\n", + " ('B05006_143E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Caribbean:!!Other Caribbean'),\n", + " ('B05006_144E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:'),\n", + " ('B05006_145E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Belize'),\n", + " ('B05006_146E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Costa Rica'),\n", + " ('B05006_147E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!El Salvador'),\n", + " ('B05006_148E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Guatemala'),\n", + " ('B05006_149E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Honduras'),\n", + " ('B05006_150E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Mexico'),\n", + " ('B05006_151E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Nicaragua'),\n", + " ('B05006_152E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Panama'),\n", + " ('B05006_153E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!Central America:!!Other Central America'),\n", + " ('B05006_154E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:'),\n", + " ('B05006_155E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Argentina'),\n", + " ('B05006_156E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Bolivia'),\n", + " ('B05006_157E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Brazil'),\n", + " ('B05006_158E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Chile'),\n", + " ('B05006_159E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Colombia'),\n", + " ('B05006_160E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Ecuador'),\n", + " ('B05006_161E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Guyana'),\n", + " ('B05006_162E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Peru'),\n", + " ('B05006_163E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Uruguay'),\n", + " ('B05006_164E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Venezuela'),\n", + " ('B05006_165E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Latin America:!!South America:!!Other South America'),\n", + " ('B05006_166E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Northern America:'),\n", + " ('B05006_167E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Northern America:!!Canada'),\n", + " ('B05006_168E',\n", + " 'PLACE OF BIRTH FOR THE FOREIGN-BORN POPULATION IN THE UNITED STATES',\n", + " 'Estimate!!Total:!!Americas:!!Northern America:!!Other Northern America'),\n", + " ('B05007_001E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:'),\n", + " ('B05007_002E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 2010 or later'),\n", + " ('B05007_003E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 2010 or later!!Naturalized U.S. citizen'),\n", + " ('B05007_004E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 2010 or later!!Not a U.S. citizen'),\n", + " ('B05007_005E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 2000 to 2009'),\n", + " ('B05007_006E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 2000 to 2009!!Naturalized U.S. citizen'),\n", + " ('B05007_007E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 2000 to 2009!!Not a U.S. citizen'),\n", + " ('B05007_008E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 1990 to 1999:'),\n", + " ('B05007_009E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_010E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_011E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered before 1990:'),\n", + " ('B05007_012E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_013E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_014E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:'),\n", + " ('B05007_015E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 2010 or later:'),\n", + " ('B05007_016E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_017E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_018E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 2000 to 2009:'),\n", + " ('B05007_019E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_020E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_021E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 1990 to 1999:'),\n", + " ('B05007_022E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_023E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_024E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered before 1990:'),\n", + " ('B05007_025E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_026E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Europe:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_027E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:'),\n", + " ('B05007_028E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 2010 or later:'),\n", + " ('B05007_029E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_030E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_031E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 2000 to 2009:'),\n", + " ('B05007_032E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_033E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_034E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 1990 to 1999:'),\n", + " ('B05007_035E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_036E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_037E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered before 1990:'),\n", + " ('B05007_038E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_039E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Asia:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_040E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:'),\n", + " ('B05007_041E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:'),\n", + " ('B05007_042E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 2010 or later:'),\n", + " ('B05007_043E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_044E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_045E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 2000 to 2009:'),\n", + " ('B05007_046E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_047E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_048E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 1990 to 1999:'),\n", + " ('B05007_049E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_050E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_051E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered before 1990:'),\n", + " ('B05007_052E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_053E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Caribbean:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_054E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:'),\n", + " ('B05007_055E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:'),\n", + " ('B05007_056E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 2010 or later:'),\n", + " ('B05007_057E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_058E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_059E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 2000 to 2009:'),\n", + " ('B05007_060E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_061E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_062E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 1990 to 1999:'),\n", + " ('B05007_063E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_064E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_065E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered before 1990:'),\n", + " ('B05007_066E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_067E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Mexico:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_068E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:'),\n", + " ('B05007_069E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 2010 or later:'),\n", + " ('B05007_070E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_071E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_072E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 2000 to 2009:'),\n", + " ('B05007_073E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_074E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_075E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 1990 to 1999:'),\n", + " ('B05007_076E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_077E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_078E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered before 1990:'),\n", + " ('B05007_079E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_080E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!Central America:!!Other Central America:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_081E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:'),\n", + " ('B05007_082E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 2010 or later:'),\n", + " ('B05007_083E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_084E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_085E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 2000 to 2009:'),\n", + " ('B05007_086E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_087E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_088E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 1990 to 1999:'),\n", + " ('B05007_089E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_090E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_091E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered before 1990:'),\n", + " ('B05007_092E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_093E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Latin America:!!South America:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05007_094E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:'),\n", + " ('B05007_095E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 2010 or later:'),\n", + " ('B05007_096E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 2010 or later:!!Naturalized U.S. citizen'),\n", + " ('B05007_097E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 2010 or later:!!Not a U.S. citizen'),\n", + " ('B05007_098E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 2000 to 2009:'),\n", + " ('B05007_099E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 2000 to 2009:!!Naturalized U.S. citizen'),\n", + " ('B05007_100E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 2000 to 2009:!!Not a U.S. citizen'),\n", + " ('B05007_101E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 1990 to 1999:'),\n", + " ('B05007_102E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 1990 to 1999:!!Naturalized U.S. citizen'),\n", + " ('B05007_103E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered 1990 to 1999:!!Not a U.S. citizen'),\n", + " ('B05007_104E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered before 1990:'),\n", + " ('B05007_105E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered before 1990:!!Naturalized U.S. citizen'),\n", + " ('B05007_106E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY BY CITIZENSHIP STATUS FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Other areas:!!Entered before 1990:!!Not a U.S. citizen'),\n", + " ('B05008_001E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:'),\n", + " ('B05008_002E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B05008_003E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Europe:'),\n", + " ('B05008_004E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Europe:!!Entered 2010 or later'),\n", + " ('B05008_005E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Europe:!!Entered 2000 to 2009'),\n", + " ('B05008_006E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Europe:!!Entered before 2000'),\n", + " ('B05008_007E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Asia:'),\n", + " ('B05008_008E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Asia:!!Entered 2010 or later'),\n", + " ('B05008_009E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Asia:!!Entered 2000 to 2009'),\n", + " ('B05008_010E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Asia:!!Entered before 2000'),\n", + " ('B05008_011E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:'),\n", + " ('B05008_012E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Entered 2010 or later'),\n", + " ('B05008_013E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Entered 2000 to 2009'),\n", + " ('B05008_014E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Entered before 2000'),\n", + " ('B05008_015E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Caribbean:'),\n", + " ('B05008_016E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Caribbean:!!Entered 2010 or later'),\n", + " ('B05008_017E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Caribbean:!!Entered 2000 to 2009'),\n", + " ('B05008_018E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Caribbean:!!Entered before 2000'),\n", + " ('B05008_019E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:'),\n", + " ('B05008_020E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Mexico:'),\n", + " ('B05008_021E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Mexico:!!Entered 2010 or later'),\n", + " ('B05008_022E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Mexico:!!Entered 2000 to 2009'),\n", + " ('B05008_023E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Mexico:!!Entered before 2000'),\n", + " ('B05008_024E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Other Central America:'),\n", + " ('B05008_025E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Other Central America:!!Entered 2010 or later'),\n", + " ('B05008_026E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Other Central America:!!Entered 2000 to 2009'),\n", + " ('B05008_027E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!Central America:!!Other Central America:!!Entered before 2000'),\n", + " ('B05008_028E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!South America:'),\n", + " ('B05008_029E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!South America:!!Entered 2010 or later'),\n", + " ('B05008_030E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!South America:!!Entered 2000 to 2009'),\n", + " ('B05008_031E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Latin America:!!South America:!!Entered before 2000'),\n", + " ('B05008_032E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Other areas:'),\n", + " ('B05008_033E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Other areas:!!Entered 2010 or later'),\n", + " ('B05008_034E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Other areas:!!Entered 2000 to 2009'),\n", + " ('B05008_035E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Other areas:!!Entered before 2000'),\n", + " ('B05008_036E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B05008_037E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Europe:'),\n", + " ('B05008_038E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Europe:!!Entered 2010 or later'),\n", + " ('B05008_039E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Europe:!!Entered 2000 to 2009'),\n", + " ('B05008_040E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Europe:!!Entered before 2000'),\n", + " ('B05008_041E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Asia:'),\n", + " ('B05008_042E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Asia:!!Entered 2010 or later'),\n", + " ('B05008_043E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Asia:!!Entered 2000 to 2009'),\n", + " ('B05008_044E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Asia:!!Entered before 2000'),\n", + " ('B05008_045E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:'),\n", + " ('B05008_046E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Entered 2010 or later'),\n", + " ('B05008_047E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Entered 2000 to 2009'),\n", + " ('B05008_048E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Entered before 2000'),\n", + " ('B05008_049E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Caribbean:'),\n", + " ('B05008_050E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Caribbean:!!Entered 2010 or later'),\n", + " ('B05008_051E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Caribbean:!!Entered 2000 to 2009'),\n", + " ('B05008_052E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Caribbean:!!Entered before 2000'),\n", + " ('B05008_053E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:'),\n", + " ('B05008_054E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Mexico:'),\n", + " ('B05008_055E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Mexico:!!Entered 2010 or later'),\n", + " ('B05008_056E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Mexico:!!Entered 2000 to 2009'),\n", + " ('B05008_057E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Mexico:!!Entered before 2000'),\n", + " ('B05008_058E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Other Central America:'),\n", + " ('B05008_059E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Other Central America:!!Entered 2010 or later'),\n", + " ('B05008_060E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Other Central America:!!Entered 2000 to 2009'),\n", + " ('B05008_061E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!Central America:!!Other Central America:!!Entered before 2000'),\n", + " ('B05008_062E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!South America:'),\n", + " ('B05008_063E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!South America:!!Entered 2010 or later'),\n", + " ('B05008_064E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!South America:!!Entered 2000 to 2009'),\n", + " ('B05008_065E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Latin America:!!South America:!!Entered before 2000'),\n", + " ('B05008_066E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Other areas:'),\n", + " ('B05008_067E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Other areas:!!Entered 2010 or later'),\n", + " ('B05008_068E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Other areas:!!Entered 2000 to 2009'),\n", + " ('B05008_069E',\n", + " 'SEX BY PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Other areas:!!Entered before 2000'),\n", + " ('B05013_001E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:'),\n", + " ('B05013_002E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B05013_003E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Under 5 years'),\n", + " ('B05013_004E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!5 to 9 years'),\n", + " ('B05013_005E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!10 to 14 years'),\n", + " ('B05013_006E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!15 to 19 years'),\n", + " ('B05013_007E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!20 to 24 years'),\n", + " ('B05013_008E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!25 to 29 years'),\n", + " ('B05013_009E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!30 to 34 years'),\n", + " ('B05013_010E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!35 to 39 years'),\n", + " ('B05013_011E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!40 to 44 years'),\n", + " ('B05013_012E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!45 to 49 years'),\n", + " ('B05013_013E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!50 to 54 years'),\n", + " ('B05013_014E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!55 to 59 years'),\n", + " ('B05013_015E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!60 to 64 years'),\n", + " ('B05013_016E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!65 to 69 years'),\n", + " ('B05013_017E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!70 to 74 years'),\n", + " ('B05013_018E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!75 to 79 years'),\n", + " ('B05013_019E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!80 to 84 years'),\n", + " ('B05013_020E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!85 years and over'),\n", + " ('B05013_021E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B05013_022E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Under 5 years'),\n", + " ('B05013_023E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!5 to 9 years'),\n", + " ('B05013_024E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!10 to 14 years'),\n", + " ('B05013_025E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!15 to 19 years'),\n", + " ('B05013_026E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!20 to 24 years'),\n", + " ('B05013_027E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!25 to 29 years'),\n", + " ('B05013_028E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!30 to 34 years'),\n", + " ('B05013_029E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!35 to 39 years'),\n", + " ('B05013_030E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!40 to 44 years'),\n", + " ('B05013_031E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!45 to 49 years'),\n", + " ('B05013_032E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!50 to 54 years'),\n", + " ('B05013_033E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!55 to 59 years'),\n", + " ('B05013_034E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!60 to 64 years'),\n", + " ('B05013_035E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!65 to 69 years'),\n", + " ('B05013_036E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!70 to 74 years'),\n", + " ('B05013_037E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!75 to 79 years'),\n", + " ('B05013_038E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!80 to 84 years'),\n", + " ('B05013_039E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!85 years and over'),\n", + " ('B05014_001E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:'),\n", + " ('B05014_002E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B05014_003E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!Under 10 years'),\n", + " ('B05014_004E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!10 to 19 years'),\n", + " ('B05014_005E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!20 to 29 years'),\n", + " ('B05014_006E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!30 to 39 years'),\n", + " ('B05014_007E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!40 to 49 years'),\n", + " ('B05014_008E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!50 to 59 years'),\n", + " ('B05014_009E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!60 to 69 years'),\n", + " ('B05014_010E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Male:!!70 years and over'),\n", + " ('B05014_011E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B05014_012E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!Under 10 years'),\n", + " ('B05014_013E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!10 to 19 years'),\n", + " ('B05014_014E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!20 to 29 years'),\n", + " ('B05014_015E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!30 to 39 years'),\n", + " ('B05014_016E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!40 to 49 years'),\n", + " ('B05014_017E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!50 to 59 years'),\n", + " ('B05014_018E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!60 to 69 years'),\n", + " ('B05014_019E',\n", + " 'SEX BY AGE FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Female:!!70 years and over'),\n", + " ('B05015_001E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:'),\n", + " ('B05015_002E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!China, Hong Kong, and Taiwan'),\n", + " ('B05015_003E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!China, Hong Kong, and Taiwan!!Entered 2010 or later'),\n", + " ('B05015_004E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!China, Hong Kong, and Taiwan!!Entered before 2010'),\n", + " ('B05015_005E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Cuba'),\n", + " ('B05015_006E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Cuba!!Entered 2010 or later'),\n", + " ('B05015_007E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Cuba!!Entered before 2010'),\n", + " ('B05015_008E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Dominican Republic'),\n", + " ('B05015_009E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Dominican Republic!!Entered 2010 or later'),\n", + " ('B05015_010E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Dominican Republic!!Entered before 2010'),\n", + " ('B05015_011E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!El Salvador'),\n", + " ('B05015_012E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!El Salvador!!Entered 2010 or later'),\n", + " ('B05015_013E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!El Salvador!!Entered before 2010'),\n", + " ('B05015_014E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Guatemala'),\n", + " ('B05015_015E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Guatemala!!Entered 2010 or later'),\n", + " ('B05015_016E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Guatemala!!Entered before 2010'),\n", + " ('B05015_017E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!India'),\n", + " ('B05015_018E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!India!!Entered 2010 or later'),\n", + " ('B05015_019E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!India!!Entered before 2010'),\n", + " ('B05015_020E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Mexico'),\n", + " ('B05015_021E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Mexico!!Entered 2010 or later'),\n", + " ('B05015_022E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Mexico!!Entered before 2010'),\n", + " ('B05015_023E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Philippines'),\n", + " ('B05015_024E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Philippines!!Entered 2010 or later'),\n", + " ('B05015_025E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Philippines!!Entered before 2010'),\n", + " ('B05015_026E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Vietnam'),\n", + " ('B05015_027E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Vietnam!!Entered 2010 or later'),\n", + " ('B05015_028E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!Vietnam!!Entered before 2010'),\n", + " ('B05015_029E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!All Other Countries'),\n", + " ('B05015_030E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!All Other Countries!!Entered 2010 or later'),\n", + " ('B05015_031E',\n", + " 'PLACE OF BIRTH BY YEAR OF ENTRY FOR THE FOREIGN-BORN POPULATION',\n", + " 'Estimate!!Total:!!All Other Countries!!Entered before 2010'),\n", + " ('B08604_001E',\n", + " 'WORKER POPULATION FOR WORKPLACE GEOGRAPHY',\n", + " 'Estimate!!Total:'),\n", + " ('B09001_001E', 'POPULATION UNDER 18 YEARS BY AGE', 'Estimate!!Total:'),\n", + " ('B09001_002E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:'),\n", + " ('B09001_003E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!Under 3 years'),\n", + " ('B09001_004E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!3 and 4 years'),\n", + " ('B09001_005E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!5 years'),\n", + " ('B09001_006E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!6 to 8 years'),\n", + " ('B09001_007E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!9 to 11 years'),\n", + " ('B09001_008E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!12 to 14 years'),\n", + " ('B09001_009E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In households:!!15 to 17 years'),\n", + " ('B09001_010E',\n", + " 'POPULATION UNDER 18 YEARS BY AGE',\n", + " 'Estimate!!Total:!!In group quarters'),\n", + " ('B09020_001E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B09020_002E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:'),\n", + " ('B09020_003E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:'),\n", + " ('B09020_004E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Householder:'),\n", + " ('B09020_005E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Householder:!!Male'),\n", + " ('B09020_006E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Householder:!!Female'),\n", + " ('B09020_007E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Spouse'),\n", + " ('B09020_008E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Parent'),\n", + " ('B09020_009E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Parent-in-law'),\n", + " ('B09020_010E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Other relatives'),\n", + " ('B09020_011E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In family households:!!Nonrelatives'),\n", + " ('B09020_012E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:'),\n", + " ('B09020_013E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:'),\n", + " ('B09020_014E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:!!Male:'),\n", + " ('B09020_015E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:!!Male:!!Living alone'),\n", + " ('B09020_016E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:!!Male:!!Not living alone'),\n", + " ('B09020_017E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:!!Female:'),\n", + " ('B09020_018E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:!!Female:!!Living alone'),\n", + " ('B09020_019E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Householder:!!Female:!!Not living alone'),\n", + " ('B09020_020E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In households:!!In nonfamily households:!!Nonrelatives'),\n", + " ('B09020_021E',\n", + " 'RELATIONSHIP BY HOUSEHOLD TYPE (INCLUDING LIVING ALONE) FOR THE POPULATION 65 YEARS AND OVER',\n", + " 'Estimate!!Total:!!In group quarters'),\n", + " ('B10050_001E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B10050_002E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:'),\n", + " ('B10050_003E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent responsible for own grandchildren under 18 years:'),\n", + " ('B10050_004E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent responsible for own grandchildren under 18 years:!!Grandparent responsible less than 6 months'),\n", + " ('B10050_005E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent responsible for own grandchildren under 18 years:!!Grandparent responsible 6 to 11 months'),\n", + " ('B10050_006E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent responsible for own grandchildren under 18 years:!!Grandparent responsible 1 or 2 years'),\n", + " ('B10050_007E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent responsible for own grandchildren under 18 years:!!Grandparent responsible 3 or 4 years'),\n", + " ('B10050_008E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent responsible for own grandchildren under 18 years:!!Grandparent responsible 5 years or more'),\n", + " ('B10050_009E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Living with own grandchildren under 18 years:!!Grandparent not responsible for own grandchildren under 18 years'),\n", + " ('B10050_010E',\n", + " 'GRANDPARENTS LIVING WITH OWN GRANDCHILDREN UNDER 18 YEARS BY RESPONSIBILITY FOR OWN GRANDCHILDREN BY LENGTH OF TIME RESPONSIBLE FOR OWN GRANDCHILDREN FOR THE POPULATION 30 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Not living with own grandchildren under 18 years'),\n", + " ('B11002A_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002A_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002A_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002A_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002A_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002A_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002A_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002A_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002A_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002A_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002A_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002A_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002B_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002B_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002B_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002B_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002B_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002B_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002B_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002B_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002B_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002B_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002B_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002B_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002C_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002C_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002C_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002C_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002C_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002C_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002C_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002C_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002C_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002C_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002C_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002C_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002D_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002D_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002D_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002D_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002D_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002D_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002D_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002D_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002D_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002D_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002D_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002D_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002E_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002E_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002E_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002E_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002E_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002E_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002E_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002E_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002E_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002E_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002E_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002E_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002F_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002F_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002F_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002F_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002F_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002F_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002F_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002F_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002F_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002F_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002F_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002F_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002G_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002G_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002G_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002G_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002G_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002G_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002G_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002G_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002G_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002G_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002G_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002G_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002H_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002H_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002H_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002H_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002H_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002H_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002H_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002H_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002H_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002H_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002H_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002H_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002I_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:'),\n", + " ('B11002I_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002I_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002I_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002I_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002I_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002I_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002I_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002I_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002I_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002I_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002I_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11002_001E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:'),\n", + " ('B11002_002E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:'),\n", + " ('B11002_003E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:'),\n", + " ('B11002_004E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Relatives'),\n", + " ('B11002_005E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In married-couple family:!!Nonrelatives'),\n", + " ('B11002_006E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:'),\n", + " ('B11002_007E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Relatives'),\n", + " ('B11002_008E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In male householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002_009E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:'),\n", + " ('B11002_010E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Relatives'),\n", + " ('B11002_011E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In family households:!!In female householder, no spouse present, family:!!Nonrelatives'),\n", + " ('B11002_012E',\n", + " 'HOUSEHOLD TYPE BY RELATIVES AND NONRELATIVES FOR POPULATION IN HOUSEHOLDS',\n", + " 'Estimate!!Total:!!In nonfamily households'),\n", + " ('B11014_001E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:'),\n", + " ('B11014_002E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In married-couple subfamilies:'),\n", + " ('B11014_003E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In married-couple subfamilies:!!Husband/wife in a childless subfamily'),\n", + " ('B11014_004E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In married-couple subfamilies:!!Husband/wife in a subfamily with children'),\n", + " ('B11014_005E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In married-couple subfamilies:!!Child'),\n", + " ('B11014_006E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In mother-child subfamilies:'),\n", + " ('B11014_007E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In mother-child subfamilies:!!Parent'),\n", + " ('B11014_008E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In mother-child subfamilies:!!Child'),\n", + " ('B11014_009E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In father-child subfamilies:'),\n", + " ('B11014_010E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In father-child subfamilies:!!Parent'),\n", + " ('B11014_011E',\n", + " 'POPULATION IN SUBFAMILIES BY SUBFAMILY TYPE BY RELATIONSHIP',\n", + " 'Estimate!!Total:!!In father-child subfamilies:!!Child'),\n", + " ('B12001_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B12001_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12001_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12001_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:'),\n", + " ('B12001_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present'),\n", + " ('B12001_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:'),\n", + " ('B12001_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated'),\n", + " ('B12001_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other'),\n", + " ('B12001_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12001_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12001_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12001_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12001_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:'),\n", + " ('B12001_014E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present'),\n", + " ('B12001_015E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:'),\n", + " ('B12001_016E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated'),\n", + " ('B12001_017E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other'),\n", + " ('B12001_018E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12001_019E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002A_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002A_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002A_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002A_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002A_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002A_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002A_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002A_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002A_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002A_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002A_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002A_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002A_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002B_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002B_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002B_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002B_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002B_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002B_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002B_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002B_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002B_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002B_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002B_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002B_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002B_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (BLACK OR AFRICAN AMERICAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002C_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002C_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002C_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002C_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002C_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002C_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002C_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002C_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002C_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002C_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002C_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002C_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002C_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (AMERICAN INDIAN AND ALASKA NATIVE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002D_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002D_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002D_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002D_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002D_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002D_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002D_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002D_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002D_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002D_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002D_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002D_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002D_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (ASIAN ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002E_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002E_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002E_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002E_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002E_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002E_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002E_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002E_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002E_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002E_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002E_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002E_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002E_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (NATIVE HAWAIIAN AND OTHER PACIFIC ISLANDER ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002F_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002F_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002F_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002F_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002F_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002F_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002F_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002F_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002F_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002F_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002F_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002F_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002F_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (SOME OTHER RACE ALONE)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002G_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002G_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002G_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002G_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002G_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002G_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002G_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002G_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002G_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002G_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002G_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002G_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002G_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (TWO OR MORE RACES)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002H_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002H_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002H_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002H_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002H_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002H_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002H_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002H_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002H_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002H_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002H_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002H_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002H_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (WHITE ALONE, NOT HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002I_001E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:'),\n", + " ('B12002I_002E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002I_003E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12002I_004E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Now married (except separated)'),\n", + " ('B12002I_005E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Separated'),\n", + " ('B12002I_006E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Widowed'),\n", + " ('B12002I_007E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Male:!!Divorced'),\n", + " ('B12002I_008E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002I_009E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12002I_010E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Now married (except separated)'),\n", + " ('B12002I_011E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Separated'),\n", + " ('B12002I_012E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Widowed'),\n", + " ('B12002I_013E',\n", + " 'SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER (HISPANIC OR LATINO)',\n", + " 'Estimate!!Total:!!Female:!!Divorced'),\n", + " ('B12002_001E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B12002_002E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12002_003E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:'),\n", + " ('B12002_004E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!15 to 17 years'),\n", + " ('B12002_005E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!18 and 19 years'),\n", + " ('B12002_006E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!20 to 24 years'),\n", + " ('B12002_007E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!25 to 29 years'),\n", + " ('B12002_008E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!30 to 34 years'),\n", + " ('B12002_009E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!35 to 39 years'),\n", + " ('B12002_010E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!40 to 44 years'),\n", + " ('B12002_011E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!45 to 49 years'),\n", + " ('B12002_012E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!50 to 54 years'),\n", + " ('B12002_013E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!55 to 59 years'),\n", + " ('B12002_014E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!60 to 64 years'),\n", + " ('B12002_015E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!65 to 74 years'),\n", + " ('B12002_016E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!75 to 84 years'),\n", + " ('B12002_017E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married:!!85 years and over'),\n", + " ('B12002_018E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:'),\n", + " ('B12002_019E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:'),\n", + " ('B12002_020E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!15 to 17 years'),\n", + " ('B12002_021E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!18 and 19 years'),\n", + " ('B12002_022E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!20 to 24 years'),\n", + " ('B12002_023E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!25 to 29 years'),\n", + " ('B12002_024E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!30 to 34 years'),\n", + " ('B12002_025E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!35 to 39 years'),\n", + " ('B12002_026E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!40 to 44 years'),\n", + " ('B12002_027E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!45 to 49 years'),\n", + " ('B12002_028E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!50 to 54 years'),\n", + " ('B12002_029E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!55 to 59 years'),\n", + " ('B12002_030E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!60 to 64 years'),\n", + " ('B12002_031E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!65 to 74 years'),\n", + " ('B12002_032E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!75 to 84 years'),\n", + " ('B12002_033E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse present:!!85 years and over'),\n", + " ('B12002_034E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:'),\n", + " ('B12002_035E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:'),\n", + " ('B12002_036E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!15 to 17 years'),\n", + " ('B12002_037E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!18 and 19 years'),\n", + " ('B12002_038E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!20 to 24 years'),\n", + " ('B12002_039E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!25 to 29 years'),\n", + " ('B12002_040E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!30 to 34 years'),\n", + " ('B12002_041E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!35 to 39 years'),\n", + " ('B12002_042E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!40 to 44 years'),\n", + " ('B12002_043E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!45 to 49 years'),\n", + " ('B12002_044E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!50 to 54 years'),\n", + " ('B12002_045E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!55 to 59 years'),\n", + " ('B12002_046E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!60 to 64 years'),\n", + " ('B12002_047E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!65 to 74 years'),\n", + " ('B12002_048E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!75 to 84 years'),\n", + " ('B12002_049E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Separated:!!85 years and over'),\n", + " ('B12002_050E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:'),\n", + " ('B12002_051E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!15 to 17 years'),\n", + " ('B12002_052E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!18 and 19 years'),\n", + " ('B12002_053E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!20 to 24 years'),\n", + " ('B12002_054E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!25 to 29 years'),\n", + " ('B12002_055E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!30 to 34 years'),\n", + " ('B12002_056E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!35 to 39 years'),\n", + " ('B12002_057E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!40 to 44 years'),\n", + " ('B12002_058E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!45 to 49 years'),\n", + " ('B12002_059E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!50 to 54 years'),\n", + " ('B12002_060E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!55 to 59 years'),\n", + " ('B12002_061E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!60 to 64 years'),\n", + " ('B12002_062E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!65 to 74 years'),\n", + " ('B12002_063E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!75 to 84 years'),\n", + " ('B12002_064E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Now married:!!Married, spouse absent:!!Other:!!85 years and over'),\n", + " ('B12002_065E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:'),\n", + " ('B12002_066E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!15 to 17 years'),\n", + " ('B12002_067E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!18 and 19 years'),\n", + " ('B12002_068E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!20 to 24 years'),\n", + " ('B12002_069E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!25 to 29 years'),\n", + " ('B12002_070E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!30 to 34 years'),\n", + " ('B12002_071E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!35 to 39 years'),\n", + " ('B12002_072E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!40 to 44 years'),\n", + " ('B12002_073E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!45 to 49 years'),\n", + " ('B12002_074E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!50 to 54 years'),\n", + " ('B12002_075E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!55 to 59 years'),\n", + " ('B12002_076E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!60 to 64 years'),\n", + " ('B12002_077E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!65 to 74 years'),\n", + " ('B12002_078E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!75 to 84 years'),\n", + " ('B12002_079E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Widowed:!!85 years and over'),\n", + " ('B12002_080E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:'),\n", + " ('B12002_081E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!15 to 17 years'),\n", + " ('B12002_082E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!18 and 19 years'),\n", + " ('B12002_083E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!20 to 24 years'),\n", + " ('B12002_084E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!25 to 29 years'),\n", + " ('B12002_085E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!30 to 34 years'),\n", + " ('B12002_086E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!35 to 39 years'),\n", + " ('B12002_087E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!40 to 44 years'),\n", + " ('B12002_088E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!45 to 49 years'),\n", + " ('B12002_089E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!50 to 54 years'),\n", + " ('B12002_090E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!55 to 59 years'),\n", + " ('B12002_091E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!60 to 64 years'),\n", + " ('B12002_092E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!65 to 74 years'),\n", + " ('B12002_093E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!75 to 84 years'),\n", + " ('B12002_094E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Divorced:!!85 years and over'),\n", + " ('B12002_095E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12002_096E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:'),\n", + " ('B12002_097E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!15 to 17 years'),\n", + " ('B12002_098E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!18 and 19 years'),\n", + " ('B12002_099E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!20 to 24 years'),\n", + " ('B12002_100E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!25 to 29 years'),\n", + " ('B12002_101E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!30 to 34 years'),\n", + " ('B12002_102E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!35 to 39 years'),\n", + " ('B12002_103E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!40 to 44 years'),\n", + " ('B12002_104E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!45 to 49 years'),\n", + " ('B12002_105E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!50 to 54 years'),\n", + " ('B12002_106E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!55 to 59 years'),\n", + " ('B12002_107E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!60 to 64 years'),\n", + " ('B12002_108E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!65 to 74 years'),\n", + " ('B12002_109E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!75 to 84 years'),\n", + " ('B12002_110E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married:!!85 years and over'),\n", + " ('B12002_111E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:'),\n", + " ('B12002_112E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:'),\n", + " ('B12002_113E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!15 to 17 years'),\n", + " ('B12002_114E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!18 and 19 years'),\n", + " ('B12002_115E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!20 to 24 years'),\n", + " ('B12002_116E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!25 to 29 years'),\n", + " ('B12002_117E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!30 to 34 years'),\n", + " ('B12002_118E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!35 to 39 years'),\n", + " ('B12002_119E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!40 to 44 years'),\n", + " ('B12002_120E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!45 to 49 years'),\n", + " ('B12002_121E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!50 to 54 years'),\n", + " ('B12002_122E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!55 to 59 years'),\n", + " ('B12002_123E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!60 to 64 years'),\n", + " ('B12002_124E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!65 to 74 years'),\n", + " ('B12002_125E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!75 to 84 years'),\n", + " ('B12002_126E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse present:!!85 years and over'),\n", + " ('B12002_127E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:'),\n", + " ('B12002_128E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:'),\n", + " ('B12002_129E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!15 to 17 years'),\n", + " ('B12002_130E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!18 and 19 years'),\n", + " ('B12002_131E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!20 to 24 years'),\n", + " ('B12002_132E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!25 to 29 years'),\n", + " ('B12002_133E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!30 to 34 years'),\n", + " ('B12002_134E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!35 to 39 years'),\n", + " ('B12002_135E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!40 to 44 years'),\n", + " ('B12002_136E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!45 to 49 years'),\n", + " ('B12002_137E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!50 to 54 years'),\n", + " ('B12002_138E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!55 to 59 years'),\n", + " ('B12002_139E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!60 to 64 years'),\n", + " ('B12002_140E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!65 to 74 years'),\n", + " ('B12002_141E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!75 to 84 years'),\n", + " ('B12002_142E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Separated:!!85 years and over'),\n", + " ('B12002_143E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:'),\n", + " ('B12002_144E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!15 to 17 years'),\n", + " ('B12002_145E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!18 and 19 years'),\n", + " ('B12002_146E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!20 to 24 years'),\n", + " ('B12002_147E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!25 to 29 years'),\n", + " ('B12002_148E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!30 to 34 years'),\n", + " ('B12002_149E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!35 to 39 years'),\n", + " ('B12002_150E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!40 to 44 years'),\n", + " ('B12002_151E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!45 to 49 years'),\n", + " ('B12002_152E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!50 to 54 years'),\n", + " ('B12002_153E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!55 to 59 years'),\n", + " ('B12002_154E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!60 to 64 years'),\n", + " ('B12002_155E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!65 to 74 years'),\n", + " ('B12002_156E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!75 to 84 years'),\n", + " ('B12002_157E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Now married:!!Married, spouse absent:!!Other:!!85 years and over'),\n", + " ('B12002_158E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:'),\n", + " ('B12002_159E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!15 to 17 years'),\n", + " ('B12002_160E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!18 and 19 years'),\n", + " ('B12002_161E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!20 to 24 years'),\n", + " ('B12002_162E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!25 to 29 years'),\n", + " ('B12002_163E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!30 to 34 years'),\n", + " ('B12002_164E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!35 to 39 years'),\n", + " ('B12002_165E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!40 to 44 years'),\n", + " ('B12002_166E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!45 to 49 years'),\n", + " ('B12002_167E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!50 to 54 years'),\n", + " ('B12002_168E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!55 to 59 years'),\n", + " ('B12002_169E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!60 to 64 years'),\n", + " ('B12002_170E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!65 to 74 years'),\n", + " ('B12002_171E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!75 to 84 years'),\n", + " ('B12002_172E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Widowed:!!85 years and over'),\n", + " ('B12002_173E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:'),\n", + " ('B12002_174E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!15 to 17 years'),\n", + " ('B12002_175E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!18 and 19 years'),\n", + " ('B12002_176E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!20 to 24 years'),\n", + " ('B12002_177E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!25 to 29 years'),\n", + " ('B12002_178E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!30 to 34 years'),\n", + " ('B12002_179E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!35 to 39 years'),\n", + " ('B12002_180E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!40 to 44 years'),\n", + " ('B12002_181E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!45 to 49 years'),\n", + " ('B12002_182E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!50 to 54 years'),\n", + " ('B12002_183E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!55 to 59 years'),\n", + " ('B12002_184E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!60 to 64 years'),\n", + " ('B12002_185E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!65 to 74 years'),\n", + " ('B12002_186E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!75 to 84 years'),\n", + " ('B12002_187E',\n", + " 'SEX BY MARITAL STATUS BY AGE FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Divorced:!!85 years and over'),\n", + " ('B12501_001E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B12501_002E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12501_003E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12501_004E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Ever married:'),\n", + " ('B12501_005E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Ever married:!!Married last year'),\n", + " ('B12501_006E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Ever married:!!Not married last year'),\n", + " ('B12501_007E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12501_008E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12501_009E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Ever married:'),\n", + " ('B12501_010E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Ever married:!!Married last year'),\n", + " ('B12501_011E',\n", + " 'MARRIAGES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Ever married:!!Not married last year'),\n", + " ('B12502_001E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B12502_002E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12502_003E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ('B12502_004E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Ever married:'),\n", + " ('B12502_005E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Ever married:!!Widowed last year'),\n", + " ('B12502_006E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Ever married:!!Not widowed last year'),\n", + " ('B12502_007E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:'),\n", + " ('B12502_008E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Never married'),\n", + " ('B12502_009E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Ever married:'),\n", + " ('B12502_010E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Ever married:!!Widowed last year'),\n", + " ('B12502_011E',\n", + " 'MARRIAGES ENDING IN WIDOWHOOD IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Female:!!Ever married:!!Not widowed last year'),\n", + " ('B12503_001E',\n", + " 'DIVORCES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:'),\n", + " ('B12503_002E',\n", + " 'DIVORCES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:'),\n", + " ('B12503_003E',\n", + " 'DIVORCES IN THE LAST YEAR BY SEX BY MARITAL STATUS FOR THE POPULATION 15 YEARS AND OVER',\n", + " 'Estimate!!Total:!!Male:!!Never married'),\n", + " ...]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "sample" ] @@ -112,10 +3119,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "dbffaeca", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "('B01003_001E', 'TOTAL POPULATION', 'Estimate!!Total')\n" + ] + } + ], "source": [ "print(sample[0])" ] @@ -387,7 +3402,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -401,7 +3416,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/social_media_scraper/requirements.txt b/social_media_scraper/requirements.txt deleted file mode 100644 index e41a69b810b997ed7a39f79f1be22f48c0659f40..0000000000000000000000000000000000000000 --- a/social_media_scraper/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -#### Requirements for YouTube scraper -pandas -matplotlib -pytchat -time \ No newline at end of file diff --git a/social_media_scraper/yt_scraper.ipynb b/social_media_scraper/yt_scraper.ipynb index f671a987f41421d1e9e9b52147a0f6d554d6a249..83f2013ce00c6e032d100b8c5a5590471f3d1674 100644 --- a/social_media_scraper/yt_scraper.ipynb +++ b/social_media_scraper/yt_scraper.ipynb @@ -6,7 +6,7 @@ "source": [ "# YouTube Scraper\n", "\n", - "## Kelloggs Group " + "## Campaign Finance Group" ] }, { @@ -15,35 +15,80 @@ "source": [ "### 1. Getting Project Dependecies\n", "\n", - "run **pip install -r requirements.txt** in your terminal\n", + "# if needed" + "#!pip install pandas" + "#!pip install pytchat" + "#!pip install matplotlib" + "#!pip install time", "\n", "This installs pandas, numpy and [pytchat](https://pypi.org/project/pytchat/)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\n", + "Requirement already satisfied: pytchat in /home/zavalni1/.local/lib/python3.8/site-packages (0.5.5)\n", + "Requirement already satisfied: httpx[http2] in /home/zavalni1/.local/lib/python3.8/site-packages (from pytchat) (0.23.3)\n", + "Requirement already satisfied: certifi in /opt/anaconda3/lib/python3.8/site-packages (from httpx[http2]->pytchat) (2022.9.24)\n", + "Requirement already satisfied: sniffio in /opt/anaconda3/lib/python3.8/site-packages (from httpx[http2]->pytchat) (1.2.0)\n", + "Requirement already satisfied: httpcore<0.17.0,>=0.15.0 in /home/zavalni1/.local/lib/python3.8/site-packages (from httpx[http2]->pytchat) (0.16.3)\n", + "Requirement already satisfied: rfc3986[idna2008]<2,>=1.3 in /home/zavalni1/.local/lib/python3.8/site-packages (from httpx[http2]->pytchat) (1.5.0)\n", + "Requirement already satisfied: h2<5,>=3 in /home/zavalni1/.local/lib/python3.8/site-packages (from httpx[http2]->pytchat) (4.1.0)\n", + "Requirement already satisfied: hpack<5,>=4.0 in /home/zavalni1/.local/lib/python3.8/site-packages (from h2<5,>=3->httpx[http2]->pytchat) (4.0.0)\n", + "Requirement already satisfied: hyperframe<7,>=6.0 in /home/zavalni1/.local/lib/python3.8/site-packages (from h2<5,>=3->httpx[http2]->pytchat) (6.0.1)\n", + "Requirement already satisfied: anyio<5.0,>=3.0 in /opt/anaconda3/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx[http2]->pytchat) (3.6.1)\n", + "Requirement already satisfied: h11<0.15,>=0.13 in /home/zavalni1/.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx[http2]->pytchat) (0.14.0)\n", + "Requirement already satisfied: idna>=2.8 in /opt/anaconda3/lib/python3.8/site-packages (from anyio<5.0,>=3.0->httpcore<0.17.0,>=0.15.0->httpx[http2]->pytchat) (2.10)\n" + ] + } + ], "source": [ - "#!pip install -r requirements.txt" + "!pip install pandas\n", + "!pip install matplotlib\n", + "!pip install pytchat", + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[nltk_data] Downloading package stopwords to\n", + "[nltk_data] /home/zavalni1/nltk_data...\n", + "[nltk_data] Package stopwords is already up-to-date!\n" + ] + } + ], "source": [ "import pandas as pd\n", "import pytchat\n", "import matplotlib.pyplot as plt\n", - "import time" + "import time\n", + "import re\n", + "import nltk\n", + "import matplotlib.pyplot as plt\n", + "from nltk.corpus import stopwords\n", + "nltk.download(\"stopwords\")\n", + "stop_words = set(stopwords.words('english'))\n", + "from nltk.stem.snowball import SnowballStemmer\n", + "st = SnowballStemmer('english')" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -73,6 +118,59 @@ " # TODO: Runtime is too small then assume an error?\n", " if time.time() - start_time >= run_time:\n", " return pd.DataFrame({'time':send_time,'name':name,'message':message})\n", + "def clean_data(df, col, clean_col):\n", + " \"\"\"\n", + " removes stop words and tokenizes the words in each chat\n", + " \n", + " :param df: data frame\n", + " :param col: name of column to parse\n", + " :param clean_col: name of cleaned column\n", + " :return: none\n", + " \"\"\"\n", + " # change to lower and remove spaces on either side\n", + " df[clean_col] = df[col].apply(lambda x: x.lower().strip())\n", + "\n", + " # remove extra spaces in between\n", + " df[clean_col] = df[clean_col].apply(lambda x: re.sub(' +', ' ', x))\n", + "\n", + " # remove punctuation\n", + " df[clean_col] = df[clean_col].apply(lambda x: re.sub('[^a-zA-Z]', ' ', x))\n", + " for i in range(len(df)):\n", + " line = df[clean_col][i].split()\n", + " line = [word for word in line if word not in stop_words]\n", + " df[clean_col][i]=line\n", + "def word_counts(df,col):\n", + " \"\"\"\n", + " visualizes most frequent words in dictionary\n", + " \n", + " :param df: data frame\n", + " :param col: column of data frame\n", + " :return: sorted dictionary of most frequent words\n", + " \"\"\"\n", + " c = {}\n", + " for i in range(len(df)):\n", + " for word in df[col][i]:\n", + " if word not in c:\n", + " c[word]=1\n", + " else:\n", + " c[word]+=1\n", + " return sorted(c.items(), key=lambda kv: kv[1])\n", + "def visualize_top_words(c,k):\n", + " \"\"\"\n", + " visualizes most frequent words in dictionary\n", + " \n", + " :param c: dictionary with counts of words\n", + " :param k: top k most frequent words to visualize\n", + " :return: none\n", + " \"\"\"\n", + " c = c[::-1]\n", + " x= []\n", + " y= []\n", + " for i in range(k):\n", + " x.append(c[i][0])\n", + " y.append(c[i][1])\n", + " plt.bar(x,y)\n", + " \n", " " ] }, @@ -91,22 +189,243 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "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>time</th>\n", + " <th>name</th>\n", + " <th>message</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>2022-02-18 12:59:39</td>\n", + " <td>Nicole Pfeifer</td>\n", + " <td>no one give timmy money if hes late</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>2022-02-18 12:59:41</td>\n", + " <td>Trent Coleman</td>\n", + " <td>late</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>2022-02-18 12:59:43</td>\n", + " <td>SIXEYE</td>\n", + " <td>LATE!!</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>2022-02-18 12:59:43</td>\n", + " <td>Christian</td>\n", + " <td>Where is he</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>2022-02-18 12:59:43</td>\n", + " <td>Nicole Pfeifer</td>\n", + " <td>fired</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "</div>" + ], + "text/plain": [ + " time name message\n", + "0 2022-02-18 12:59:39 Nicole Pfeifer no one give timmy money if hes late\n", + "1 2022-02-18 12:59:41 Trent Coleman late\n", + "2 2022-02-18 12:59:43 SIXEYE LATE!!\n", + "3 2022-02-18 12:59:43 Christian Where is he \n", + "4 2022-02-18 12:59:43 Nicole Pfeifer fired" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "yt_link = \"https://www.youtube.com/watch?v=LodADaKUWp8\"\n", "chat = pytchat.create(video_id=yt_link)\n", - "chat_data = get_yt_data(chat,60,False)\n", + "chat_data = get_yt_data(chat,360,False)\n", "chat_data.head()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "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>time</th>\n", + " <th>name</th>\n", + " <th>message</th>\n", + " <th>clean message</th>\n", + " </tr>\n", + " </thead>\n", + " <tbody>\n", + " <tr>\n", + " <th>0</th>\n", + " <td>2022-02-18 12:59:39</td>\n", + " <td>Nicole Pfeifer</td>\n", + " <td>no one give timmy money if hes late</td>\n", + " <td>[one, give, timmy, money, hes, late]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>1</th>\n", + " <td>2022-02-18 12:59:41</td>\n", + " <td>Trent Coleman</td>\n", + " <td>late</td>\n", + " <td>[late]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>2</th>\n", + " <td>2022-02-18 12:59:43</td>\n", + " <td>SIXEYE</td>\n", + " <td>LATE!!</td>\n", + " <td>[late]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>3</th>\n", + " <td>2022-02-18 12:59:43</td>\n", + " <td>Christian</td>\n", + " <td>Where is he</td>\n", + " <td>[]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>4</th>\n", + " <td>2022-02-18 12:59:43</td>\n", + " <td>Nicole Pfeifer</td>\n", + " <td>fired</td>\n", + " <td>[fired]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>...</th>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " <td>...</td>\n", + " </tr>\n", + " <tr>\n", + " <th>994</th>\n", + " <td>2022-02-18 13:05:33</td>\n", + " <td>jon</td>\n", + " <td>o and e are switched</td>\n", + " <td>[e, switched]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>995</th>\n", + " <td>2022-02-18 13:05:33</td>\n", + " <td>Rohan Vakharia</td>\n", + " <td>RODEO</td>\n", + " <td>[rodeo]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>996</th>\n", + " <td>2022-02-18 13:05:35</td>\n", + " <td>Maddy</td>\n", + " <td>ORDER</td>\n", + " <td>[order]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>997</th>\n", + " <td>2022-02-18 13:05:35</td>\n", + " <td>LOGIC</td>\n", + " <td>DODGE</td>\n", + " <td>[dodge]</td>\n", + " </tr>\n", + " <tr>\n", + " <th>998</th>\n", + " <td>2022-02-18 13:05:36</td>\n", + " <td>Stephen Snyder</td>\n", + " <td>RAM</td>\n", + " <td>[ram]</td>\n", + " </tr>\n", + " </tbody>\n", + "</table>\n", + "<p>999 rows × 4 columns</p>\n", + "</div>" + ], + "text/plain": [ + " time name message \\\n", + "0 2022-02-18 12:59:39 Nicole Pfeifer no one give timmy money if hes late \n", + "1 2022-02-18 12:59:41 Trent Coleman late \n", + "2 2022-02-18 12:59:43 SIXEYE LATE!! \n", + "3 2022-02-18 12:59:43 Christian Where is he \n", + "4 2022-02-18 12:59:43 Nicole Pfeifer fired \n", + ".. ... ... ... \n", + "994 2022-02-18 13:05:33 jon o and e are switched \n", + "995 2022-02-18 13:05:33 Rohan Vakharia RODEO \n", + "996 2022-02-18 13:05:35 Maddy ORDER \n", + "997 2022-02-18 13:05:35 LOGIC DODGE \n", + "998 2022-02-18 13:05:36 Stephen Snyder RAM \n", + "\n", + " clean message \n", + "0 [one, give, timmy, money, hes, late] \n", + "1 [late] \n", + "2 [late] \n", + "3 [] \n", + "4 [fired] \n", + ".. ... \n", + "994 [e, switched] \n", + "995 [rodeo] \n", + "996 [order] \n", + "997 [dodge] \n", + "998 [ram] \n", + "\n", + "[999 rows x 4 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "clean_data(chat_data,\"message\",\"clean message\")\n", "chat_data" ] }, @@ -124,19 +443,24 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.figure(figsize = (12,7))\n", - "plt.hist(chat_data['name'].value_counts());" - ] - }, - { - "cell_type": "markdown", + "execution_count": 8, "metadata": {}, + "outputs": [ + { + "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": [ - "TODO: put names in x-axis" + "visualize_top_words(word_counts(chat_data,\"clean message\"),10)" ] }, { @@ -149,8 +473,17 @@ "\n", "- [pandas](https://pandas.pydata.org/)\n", "\n", - "- [matplotlib](https://matplotlib.org/)" + "- [matplotlib](https://matplotlib.org/)\n", + "\n", + "- [nltk](https://www.nltk.org/)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -158,7 +491,7 @@ "hash": "9fae0222e7ef579c3cc0692d7cdb413546afb4e5626ba30c1f89c4981fa26feb" }, "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -172,7 +505,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.2" + "version": "3.8.8" } }, "nbformat": 4, diff --git a/tpot_tutorial.ipynb b/tpot_tutorial.ipynb index 63f426c3fe3d4f4a35ea31c2b6798ea3caa1d4eb..d6337788119eb0551e1b395808b619fd8931d015 100644 --- a/tpot_tutorial.ipynb +++ b/tpot_tutorial.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 1, "id": "eaee9fda", "metadata": {}, "outputs": [ @@ -18,33 +18,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: torch in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (1.10.2)\n", - "Requirement already satisfied: typing-extensions in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from torch) (3.10.0.2)\n", + "Requirement already satisfied: torch in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (1.13.1)\n", + "Requirement already satisfied: typing-extensions in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from torch) (3.10.0.2)\n", "Note: you may need to restart the kernel to use updated packages.\n", - "Requirement already satisfied: xgboost in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (1.5.2)\n", - "Requirement already satisfied: numpy in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from xgboost) (1.21.2)\n", - "Requirement already satisfied: scipy in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from xgboost) (1.8.0)\n", + "Requirement already satisfied: xgboost in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (1.7.3)\n", + "Requirement already satisfied: numpy in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from xgboost) (1.21.2)\n", + "Requirement already satisfied: scipy in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from xgboost) (1.7.3)\n", "Note: you may need to restart the kernel to use updated packages.\n", - "Requirement already satisfied: tpot in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (0.11.7)\n", - "Requirement already satisfied: xgboost>=1.1.0 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.5.2)\n", - "Requirement already satisfied: joblib>=0.13.2 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.1.0)\n", - "Requirement already satisfied: numpy>=1.16.3 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.21.2)\n", - "Requirement already satisfied: stopit>=1.1.1 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.1.2)\n", - "Requirement already satisfied: tqdm>=4.36.1 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (4.62.3)\n", - "Requirement already satisfied: scipy>=1.3.1 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.8.0)\n", - "Requirement already satisfied: scikit-learn>=0.22.0 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.0.1)\n", - "Requirement already satisfied: update-checker>=0.16 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (0.18.0)\n", - "Requirement already satisfied: deap>=1.2 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.3.1)\n", - "Requirement already satisfied: pandas>=0.24.2 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.3.5)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from pandas>=0.24.2->tpot) (2.8.2)\n", - "Requirement already satisfied: pytz>=2017.3 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from pandas>=0.24.2->tpot) (2021.3)\n", - "Requirement already satisfied: six>=1.5 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas>=0.24.2->tpot) (1.16.0)\n", - "Requirement already satisfied: threadpoolctl>=2.0.0 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from scikit-learn>=0.22.0->tpot) (2.2.0)\n", - "Requirement already satisfied: requests>=2.3.0 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from update-checker>=0.16->tpot) (2.26.0)\n", - "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (1.26.7)\n", - "Requirement already satisfied: charset-normalizer~=2.0.0 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2.0.4)\n", - "Requirement already satisfied: certifi>=2017.4.17 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2021.10.8)\n", - "Requirement already satisfied: idna<4,>=2.5 in /Users/kaitlynarnold/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (3.3)\n", + "Requirement already satisfied: tpot in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (0.11.7)\n", + "Requirement already satisfied: tqdm>=4.36.1 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (4.62.3)\n", + "Requirement already satisfied: xgboost>=1.1.0 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.7.3)\n", + "Requirement already satisfied: deap>=1.2 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.3.3)\n", + "Requirement already satisfied: pandas>=0.24.2 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.3.5)\n", + "Requirement already satisfied: update-checker>=0.16 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (0.18.0)\n", + "Requirement already satisfied: stopit>=1.1.1 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.1.2)\n", + "Requirement already satisfied: scipy>=1.3.1 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.7.3)\n", + "Requirement already satisfied: scikit-learn>=0.22.0 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.0.1)\n", + "Requirement already satisfied: joblib>=0.13.2 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.1.0)\n", + "Requirement already satisfied: numpy>=1.16.3 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from tpot) (1.21.2)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from pandas>=0.24.2->tpot) (2.8.2)\n", + "Requirement already satisfied: pytz>=2017.3 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from pandas>=0.24.2->tpot) (2021.3)\n", + "Requirement already satisfied: six>=1.5 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas>=0.24.2->tpot) (1.16.0)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from scikit-learn>=0.22.0->tpot) (2.2.0)\n", + "Requirement already satisfied: requests>=2.3.0 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from update-checker>=0.16->tpot) (2.27.1)\n", + "Requirement already satisfied: idna<4,>=2.5 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (3.3)\n", + "Requirement already satisfied: charset-normalizer~=2.0.0 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2.0.4)\n", + "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (1.26.7)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /Users/izaanys/opt/anaconda3/lib/python3.8/site-packages (from requests>=2.3.0->update-checker>=0.16->tpot) (2022.9.24)\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } @@ -94,7 +94,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "id": "022ab1ce", "metadata": {}, "outputs": [], @@ -116,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "2898aaa9", "metadata": {}, "outputs": [ @@ -137,7 +137,7 @@ " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]))" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "id": "1d1ac27a", "metadata": {}, "outputs": [ @@ -160,7 +160,7 @@ "((112, 4), (38, 4), (112,), (38,))" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -173,21 +173,14 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 5, "id": "015515d0", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Warning: xgboost.XGBClassifier is not available and will not be used by TPOT.\n" - ] - }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "49da94ec3a20499782a4a98ab6224166", + "model_id": "", "version_major": 2, "version_minor": 0 }, @@ -203,14 +196,14 @@ "output_type": "stream", "text": [ "\n", - "2.21 minutes have elapsed. TPOT will close down.\n", + "2.02 minutes have elapsed. TPOT will close down.\n", "TPOT closed during evaluation in one generation.\n", "WARNING: TPOT may not provide a good pipeline if TPOT is stopped/interrupted in a early generation.\n", "\n", "\n", "TPOT closed prematurely. Will use the current best pipeline.\n", "\n", - "Best pipeline: MLPClassifier(input_matrix, alpha=0.0001, learning_rate_init=0.01)\n", + "Best pipeline: LogisticRegression(input_matrix, C=25.0, dual=False, penalty=l2)\n", "0.9736842105263158\n" ] } @@ -218,16 +211,24 @@ "source": [ "# Fit the model based on the training data, get a score based on testing data.\n", "# Will report the score of the best found pipeline\n", - "# Change max_time_mins to a higher time to allow TPOT to run without interuption\n", + "# Change max_time_mins to a higher time to allow TPOT to run without interruption. #issue number 25\n", "# It is currently at 2 mins for sake of not taking to long\n", - "tpot = TPOTClassifier(verbosity=2, max_time_mins=2)\n", + "tpot = TPOTClassifier(verbosity=2, max_time_mins=3)\n", "tpot.fit(X_train, y_train)\n", "print(tpot.score(X_test, y_test))" ] }, + { + "cell_type": "markdown", + "id": "22bb780f", + "metadata": {}, + "source": [ + "Issued warning of TPOT closed prematurely. I am increasing the max_time to 4 so tpot can completely run and the results are more accurate" + ] + }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 6, "id": "fedcae2c", "metadata": {}, "outputs": [], @@ -246,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 7, "id": "f2ac0eda", "metadata": {}, "outputs": [ @@ -388,7 +389,7 @@ "4 0 373450 8.0500 NaN S " ] }, - "execution_count": 12, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -401,7 +402,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 8, "id": "30eeb3aa", "metadata": {}, "outputs": [], @@ -412,7 +413,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 9, "id": "bcc561a3", "metadata": {}, "outputs": [ @@ -436,7 +437,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 10, "id": "5be7251f", "metadata": {}, "outputs": [ @@ -457,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 11, "id": "8bb50fa8", "metadata": {}, "outputs": [], @@ -469,7 +470,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 12, "id": "11c06d01", "metadata": {}, "outputs": [ @@ -491,7 +492,7 @@ "dtype: bool" ] }, - "execution_count": 17, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -504,7 +505,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 13, "id": "aa017a2a", "metadata": {}, "outputs": [], @@ -517,7 +518,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 14, "id": "34567d07", "metadata": {}, "outputs": [ @@ -533,7 +534,7 @@ " [1, 0, 0, ..., 0, 0, 0]])" ] }, - "execution_count": 19, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -544,7 +545,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 15, "id": "f31db644", "metadata": {}, "outputs": [], @@ -555,7 +556,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 16, "id": "e8ccd33c", "metadata": {}, "outputs": [], @@ -566,7 +567,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 17, "id": "594776f6", "metadata": {}, "outputs": [], @@ -578,7 +579,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 18, "id": "e8d47aef", "metadata": {}, "outputs": [ @@ -588,7 +589,7 @@ "False" ] }, - "execution_count": 23, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -600,7 +601,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 19, "id": "6fb6b7df", "metadata": {}, "outputs": [ @@ -610,7 +611,7 @@ "156" ] }, - "execution_count": 24, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } @@ -621,7 +622,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 20, "id": "09fe6803", "metadata": {}, "outputs": [], @@ -632,7 +633,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 21, "id": "a14bb5fd", "metadata": {}, "outputs": [ @@ -642,7 +643,7 @@ "(668, 223)" ] }, - "execution_count": 26, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -655,21 +656,14 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "id": "227863a0", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Warning: xgboost.XGBClassifier is not available and will not be used by TPOT.\n" - ] - }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "", + "model_id": "986af026de044e8694da6328fcffcb1c", "version_major": 2, "version_minor": 0 }, @@ -679,56 +673,36 @@ }, "metadata": {}, "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Generation 1 - Current best internal CV score: 0.8068791381438671\n", - "\n", - "2.01 minutes have elapsed. TPOT will close down.\n", - "TPOT closed during evaluation in one generation.\n", - "WARNING: TPOT may not provide a good pipeline if TPOT is stopped/interrupted in a early generation.\n", - "\n", - "\n", - "TPOT closed prematurely. Will use the current best pipeline.\n", - "\n", - "Best pipeline: DecisionTreeClassifier(input_matrix, criterion=gini, max_depth=3, min_samples_leaf=13, min_samples_split=20)\n" - ] - }, - { - "data": { - "text/plain": [ - "TPOTClassifier(max_eval_time_mins=0.04, max_time_mins=2, population_size=40,\n", - " verbosity=2)" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ "# create the classifier and fit the model, reports the best pipeline\n", "# Parameters within the TPOT Classifier can be changed to allow for longer run time across more models\n", - "tpot = TPOTClassifier(verbosity=2, max_time_mins=2, max_eval_time_mins=0.04, population_size=40)\n", + "tpot = TPOTClassifier(verbosity=2, max_time_mins=4, max_eval_time_mins=0.04, population_size=40)\n", "tpot.fit(titanic_new[training_indices], titanic_class[training_indices])" ] }, + { + "cell_type": "markdown", + "id": "910d6e80", + "metadata": {}, + "source": [ + "Issued warning of TPOT closed prematurely. I am increasing the max_time so tpot can completely run and the results are more accurate" + ] + }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 23, "id": "ca18f35b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "0.757847533632287" + "0.7533632286995515" ] }, - "execution_count": 28, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -740,7 +714,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 24, "id": "4d710e07", "metadata": {}, "outputs": [], @@ -751,7 +725,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 25, "id": "d7ff45ed", "metadata": {}, "outputs": [ @@ -873,7 +847,7 @@ "max 1309.000000 3.000000 76.000000 8.000000 9.000000 512.329200" ] }, - "execution_count": 30, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -886,7 +860,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 26, "id": "8264d2ed", "metadata": {}, "outputs": [], @@ -899,7 +873,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 27, "id": "fe8198e3", "metadata": {}, "outputs": [], @@ -911,7 +885,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 28, "id": "13204313", "metadata": {}, "outputs": [ @@ -932,7 +906,7 @@ "dtype: bool" ] }, - "execution_count": 33, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -945,7 +919,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 29, "id": "82e8d3fb", "metadata": {}, "outputs": [], @@ -960,7 +934,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 30, "id": "185ba8c1", "metadata": {}, "outputs": [], @@ -971,7 +945,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 31, "id": "359c8b6b", "metadata": {}, "outputs": [ @@ -981,7 +955,7 @@ "False" ] }, - "execution_count": 36, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -992,7 +966,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 32, "id": "e73a0c32", "metadata": {}, "outputs": [], @@ -1002,7 +976,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 33, "id": "d868e452", "metadata": {}, "outputs": [], @@ -1013,7 +987,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 34, "id": "1666f357", "metadata": {}, "outputs": [ @@ -1023,7 +997,7 @@ "array([0, 1, 0, 0, 1, 0, 1, 0, 1, 0])" ] }, - "execution_count": 40, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1034,10 +1008,26 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 35, "id": "3d91d737", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "FileNotFoundError", + "evalue": "[Errno 2] No such file or directory: 'data/submission.csv'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/tk/mrjkyqms0651_r4m4qvb9xz00000gn/T/ipykernel_43658/2451894762.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;31m#save as csv\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mfinal\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'PassengerId'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtitanic_sub\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'PassengerId'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Survived'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0msubmission\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mfinal\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'data/submission.csv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mto_csv\u001b[0;34m(self, path_or_buf, sep, na_rep, float_format, columns, header, index, index_label, mode, encoding, compression, quoting, quotechar, line_terminator, chunksize, date_format, doublequote, escapechar, decimal, errors, storage_options)\u001b[0m\n\u001b[1;32m 3464\u001b[0m )\n\u001b[1;32m 3465\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3466\u001b[0;31m return DataFrameRenderer(formatter).to_csv(\n\u001b[0m\u001b[1;32m 3467\u001b[0m \u001b[0mpath_or_buf\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3468\u001b[0m \u001b[0mline_terminator\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mline_terminator\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/formats/format.py\u001b[0m in \u001b[0;36mto_csv\u001b[0;34m(self, path_or_buf, encoding, sep, columns, index_label, mode, compression, quoting, quotechar, line_terminator, chunksize, date_format, doublequote, escapechar, errors, storage_options)\u001b[0m\n\u001b[1;32m 1103\u001b[0m \u001b[0mformatter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfmt\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1104\u001b[0m )\n\u001b[0;32m-> 1105\u001b[0;31m \u001b[0mcsv_formatter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1106\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1107\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcreated_buffer\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/formats/csvs.py\u001b[0m in \u001b[0;36msave\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 235\u001b[0m \"\"\"\n\u001b[1;32m 236\u001b[0m \u001b[0;31m# apply compression and byte/text conversion\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 237\u001b[0;31m with get_handle(\n\u001b[0m\u001b[1;32m 238\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 239\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.8/site-packages/pandas/io/common.py\u001b[0m in \u001b[0;36mget_handle\u001b[0;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mioargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mencoding\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;34m\"b\"\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mioargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0;31m# Encoding\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 702\u001b[0;31m handle = open(\n\u001b[0m\u001b[1;32m 703\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0mioargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'data/submission.csv'" + ] + } + ], "source": [ "#create a data frame with passenger id and what class they belong to (if they survived or not)\n", "#save as csv\n", @@ -1047,21 +1037,10 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": null, "id": "240feb73", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(418, 2)" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "final.shape" ] @@ -1093,7 +1072,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.9.1" } }, "nbformat": 4,