Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A quick investigation of menus dated between 1850 and 1900 in the NYPL data set.
{
"metadata": {
"name": "Menus Before 1900"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": "# Miss Buttolph's Collection of Menus Dated Before 1900"
},
{
"cell_type": "code",
"collapsed": false,
"input": "import pandas as pd",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": "!wget -P data/ https://s3.amazonaws.com/menus_nypl/2014_01_04_07_20_11_data.tgz",
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": "!tar xvzf data/2014_01_04_07_20_11_data.tgz -C data/",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "x Dish.csv"
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r\nx Menu.csv"
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r\nx MenuItem.csv"
},
{
"output_type": "stream",
"stream": "stdout",
"text": "\r\nx MenuPage.csv\r\n"
}
],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": "!ls data/",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": "2014_01_04_07_20_11_data.tgz menus_geolocated_1912.csv\r\nDish.csv menus_geolocated_1913.csv\r\nMenu.csv menus_geolocated_1914.csv\r\nMenuItem.csv menus_geolocated_1915.csv\r\nMenuPage.csv menus_geolocated_1916.csv\r\n\u001b[1m\u001b[36mapi_responses\u001b[m\u001b[m menus_geolocated_1917.csv\r\ndishes_1910_to_1920.csv menus_geolocated_1918.csv\r\nmenus_1910_to_1920.csv menus_geolocated_1919.csv\r\nmenus_geolocated.csv menus_geolocated_1920.csv\r\nmenus_geolocated_1910.csv menusgeo_locations.csv\r\n"
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Create a DataFrame from Menu.csv \u2026"
},
{
"cell_type": "code",
"collapsed": false,
"input": "menu_df = pd.read_csv('data/Menu.csv', index_col='id')",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": "menu_df.head()",
"language": "python",
"metadata": {},
"outputs": [
{
"html": "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>name</th>\n <th>sponsor</th>\n <th>event</th>\n <th>venue</th>\n <th>place</th>\n <th>physical_description</th>\n <th>occasion</th>\n <th>notes</th>\n <th>call_number</th>\n <th>keywords</th>\n <th>language</th>\n <th>date</th>\n <th>location</th>\n <th>location_type</th>\n <th>currency</th>\n <th>currency_symbol</th>\n <th>status</th>\n <th>page_count</th>\n <th>dish_count</th>\n </tr>\n <tr>\n <th>id</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>12463</th>\n <td> NaN</td>\n <td> HOTEL EASTMAN</td>\n <td> BREAKFAST</td>\n <td> COMMERCIAL</td>\n <td> HOT SPRINGS, AR</td>\n <td> CARD; 4.75X7.5;</td>\n <td> EASTER;</td>\n <td> NaN</td>\n <td> 1900-2822</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1900-04-15</td>\n <td> Hotel Eastman</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> complete</td>\n <td> 2</td>\n <td> 67</td>\n </tr>\n <tr>\n <th>12464</th>\n <td> NaN</td>\n <td> REPUBLICAN HOUSE</td>\n <td> [DINNER]</td>\n <td> COMMERCIAL</td>\n <td> MILWAUKEE, [WI];</td>\n <td> CARD; ILLUS; COL; 7.0X9.0;</td>\n <td> EASTER;</td>\n <td> WEDGEWOOD BLUE CARD; WHITE EMBOSSED GREEK KEY ...</td>\n <td> 1900-2825</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1900-04-15</td>\n <td> Republican House</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> complete</td>\n <td> 2</td>\n <td> 34</td>\n </tr>\n <tr>\n <th>12465</th>\n <td> NaN</td>\n <td> NORDDEUTSCHER LLOYD BREMEN</td>\n <td> FRUHSTUCK/BREAKFAST;</td>\n <td> COMMERCIAL</td>\n <td> DAMPFER KAISER WILHELM DER GROSSE;</td>\n <td> CARD; ILLU; COL; 5.5X8.0;</td>\n <td> NaN</td>\n <td> MENU IN GERMAN AND ENGLISH; ILLUS, STEAMSHIP A...</td>\n <td> 1900-2827</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1900-04-16</td>\n <td> Norddeutscher Lloyd Bremen</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> under review</td>\n <td> 2</td>\n <td> 84</td>\n </tr>\n <tr>\n <th>12466</th>\n <td> NaN</td>\n <td> NORDDEUTSCHER LLOYD BREMEN</td>\n <td> LUNCH;</td>\n <td> COMMERCIAL</td>\n <td> DAMPFER KAISER WILHELM DER GROSSE;</td>\n <td> CARD; ILLU; COL; 5.5X8.0;</td>\n <td> NaN</td>\n <td> MENU IN GERMAN AND ENGLISH; ILLUS, HARBOR SCEN...</td>\n <td> 1900-2828</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1900-04-16</td>\n <td> Norddeutscher Lloyd Bremen</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> under review</td>\n <td> 2</td>\n <td> 63</td>\n </tr>\n <tr>\n <th>12467</th>\n <td> NaN</td>\n <td> NORDDEUTSCHER LLOYD BREMEN</td>\n <td> DINNER;</td>\n <td> COMMERCIAL</td>\n <td> DAMPFER KAISER WILHELM DER GROSSE;</td>\n <td> FOLDER; ILLU; COL; 5.5X7.5;</td>\n <td> NaN</td>\n <td> MENU IN GERMAN AND ENGLISH; ILLUS, HARBOR SCEN...</td>\n <td> 1900-2829</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1900-04-16</td>\n <td> Norddeutscher Lloyd Bremen</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> complete</td>\n <td> 4</td>\n <td> 33</td>\n </tr>\n </tbody>\n</table>\n</div>",
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": " name sponsor event venue \\\nid \n12463 NaN HOTEL EASTMAN BREAKFAST COMMERCIAL \n12464 NaN REPUBLICAN HOUSE [DINNER] COMMERCIAL \n12465 NaN NORDDEUTSCHER LLOYD BREMEN FRUHSTUCK/BREAKFAST; COMMERCIAL \n12466 NaN NORDDEUTSCHER LLOYD BREMEN LUNCH; COMMERCIAL \n12467 NaN NORDDEUTSCHER LLOYD BREMEN DINNER; COMMERCIAL \n\n place physical_description \\\nid \n12463 HOT SPRINGS, AR CARD; 4.75X7.5; \n12464 MILWAUKEE, [WI]; CARD; ILLUS; COL; 7.0X9.0; \n12465 DAMPFER KAISER WILHELM DER GROSSE; CARD; ILLU; COL; 5.5X8.0; \n12466 DAMPFER KAISER WILHELM DER GROSSE; CARD; ILLU; COL; 5.5X8.0; \n12467 DAMPFER KAISER WILHELM DER GROSSE; FOLDER; ILLU; COL; 5.5X7.5; \n\n occasion notes call_number \\\nid \n12463 EASTER; NaN 1900-2822 \n12464 EASTER; WEDGEWOOD BLUE CARD; WHITE EMBOSSED GREEK KEY ... 1900-2825 \n12465 NaN MENU IN GERMAN AND ENGLISH; ILLUS, STEAMSHIP A... 1900-2827 \n12466 NaN MENU IN GERMAN AND ENGLISH; ILLUS, HARBOR SCEN... 1900-2828 \n12467 NaN MENU IN GERMAN AND ENGLISH; ILLUS, HARBOR SCEN... 1900-2829 \n\n keywords language date location \\\nid \n12463 NaN NaN 1900-04-15 Hotel Eastman \n12464 NaN NaN 1900-04-15 Republican House \n12465 NaN NaN 1900-04-16 Norddeutscher Lloyd Bremen \n12466 NaN NaN 1900-04-16 Norddeutscher Lloyd Bremen \n12467 NaN NaN 1900-04-16 Norddeutscher Lloyd Bremen \n\n location_type currency currency_symbol status page_count \\\nid \n12463 NaN NaN NaN complete 2 \n12464 NaN NaN NaN complete 2 \n12465 NaN NaN NaN under review 2 \n12466 NaN NaN NaN under review 2 \n12467 NaN NaN NaN complete 4 \n\n dish_count \nid \n12463 67 \n12464 34 \n12465 84 \n12466 63 \n12467 33 "
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": "import dateutil\n\ndef extract_year(x):\n try:\n datestring = dateutil.parser.parse(x)\n return datestring.year\n except:\n return None\n\nmenu_df['date_year'] = menu_df['date'].map(extract_year)",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Grab only the menus dated before 1900 \u2026"
},
{
"cell_type": "code",
"collapsed": false,
"input": "c19 = menu_df[menu_df.date_year < 1900]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": "c19.date_year.value_counts()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": "1899 468\n1898 210\n1897 169\n1896 125\n1895 111\n1892 99\n1891 95\n1894 74\n1893 74\n1890 57\n1889 57\n1888 46\n1881 33\n1887 29\n1882 25\n1885 21\n1880 20\n1886 19\n1884 19\n1883 14\n1865 7\n1866 6\n1856 5\n1854 3\n1862 3\n1858 3\n1859 3\n1851 3\n1864 3\n1852 2\n1861 1\n1869 1\n1857 1\n1873 1\n1855 1\n190 1\n1853 1\n1091 1\ndtype: int64"
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": "A quick filter to get rid of rows with date values '190' and '1091' (typos that are not relevant to this question) \u2026"
},
{
"cell_type": "code",
"collapsed": false,
"input": "cleaned_c19 = c19[c19.date_year > 1850]",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Histogram of the resulting distribution by year \u2026"
},
{
"cell_type": "code",
"collapsed": false,
"input": "%matplotlib inline\ncleaned_c19.date_year.hist(figsize=(20,10))",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": "<matplotlib.axes.AxesSubplot at 0x10bd86c90>"
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\ngg==\n",
"text": "<matplotlib.figure.Figure at 0x10bd86750>"
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": "What stands out are the numbers of menus dated 1880-1895 (when NYPL was founded from merger of Astor and Lennox Libraries) \u2026 These sorts of numbers 100+ menus per year start to not make sense as retrospective collecting from a project started in 1899 or 1900?\n\nIt is worth noting that not all of these will be from only the Buttolph collection \u2026 have to follow up on that (by looking at the call numbers)"
},
{
"cell_type": "code",
"collapsed": false,
"input": "cleaned_c19.head()",
"language": "python",
"metadata": {},
"outputs": [
{
"html": "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>name</th>\n <th>sponsor</th>\n <th>event</th>\n <th>venue</th>\n <th>place</th>\n <th>physical_description</th>\n <th>occasion</th>\n <th>notes</th>\n <th>call_number</th>\n <th>keywords</th>\n <th>language</th>\n <th>date</th>\n <th>location</th>\n <th>location_type</th>\n <th>currency</th>\n <th>currency_symbol</th>\n <th>status</th>\n <th>page_count</th>\n <th>dish_count</th>\n <th>date_year</th>\n </tr>\n <tr>\n <th>id</th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>12503</th>\n <td> NaN</td>\n <td> POLICE DEPARTMENT OF THE CITY OF NEW YORK</td>\n <td> SEVENTH ANNUAL DINNER</td>\n <td> GOVT;</td>\n <td> DELMONICO'S</td>\n <td> FOL; 4.75 x 7.25;</td>\n <td> NaN</td>\n <td> SEAL ON COVER; FRENCH; INCLUDES WINES SERVED W...</td>\n <td> 1888-0010</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1888-01-23</td>\n <td> Police Department Of The City Of New York</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> under review</td>\n <td> 3</td>\n <td> 30</td>\n <td> 1888</td>\n </tr>\n <tr>\n <th>12515</th>\n <td> NaN</td>\n <td> THE ALBANY</td>\n <td> LUNCH</td>\n <td> ?</td>\n <td> DENVER, COLO;</td>\n <td> CARD;3.5 X 5;</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> 1888-0611</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1888-10-15</td>\n <td> The Albany</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> complete</td>\n <td> 2</td>\n <td> 30</td>\n <td> 1888</td>\n </tr>\n <tr>\n <th>12516</th>\n <td> NaN</td>\n <td> REVERE HOUSE</td>\n <td> COMPLIMENTARY BANQUET GIVEN BY THE CITY GOVERN...</td>\n <td> RESTAURANT</td>\n <td> BOSTON, MA</td>\n <td> BROADSIDE; ILLUS; 4.25 X 11.75</td>\n <td> NaN</td>\n <td> MENU PRINTED IN BLACK ON CREAM SILK RIBBON WIT...</td>\n <td> 1865-0001</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1865-09-28</td>\n <td> Parker House</td>\n <td>NaN</td>\n <td> Dollars</td>\n <td> $</td>\n <td> complete</td>\n <td> 4</td>\n <td> 427</td>\n <td> 1865</td>\n </tr>\n <tr>\n <th>12517</th>\n <td> NaN</td>\n <td> NATIONAL VERBANDES DEUTSCH AMERIKANISCHER JOUR...</td>\n <td> FEST-BANKETT</td>\n <td> RESTAURANT</td>\n <td> DER LIEDERKRANZ HALLE</td>\n <td> BOOKLET; ILLUS; COL; 6 X 7.5</td>\n <td> NaN</td>\n <td> MENU IS IN GERMAN; FOOD SELECTIONS REPRESENT V...</td>\n <td> 1892-0112</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1892-05-19</td>\n <td> National Verbandes Deutsch Amerikanischer Jour...</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> under review</td>\n <td> 2</td>\n <td> 21</td>\n <td> 1892</td>\n </tr>\n <tr>\n <th>12632</th>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td>NaN</td>\n <td>NaN</td>\n <td> 1890-01-06</td>\n <td> Spiers &amp; Pond,Ld</td>\n <td>NaN</td>\n <td> NaN</td>\n <td> NaN</td>\n <td> complete</td>\n <td> 4</td>\n <td> 32</td>\n <td> 1890</td>\n </tr>\n </tbody>\n</table>\n</div>",
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": " name sponsor \\\nid \n12503 NaN POLICE DEPARTMENT OF THE CITY OF NEW YORK \n12515 NaN THE ALBANY \n12516 NaN REVERE HOUSE \n12517 NaN NATIONAL VERBANDES DEUTSCH AMERIKANISCHER JOUR... \n12632 NaN NaN \n\n event venue \\\nid \n12503 SEVENTH ANNUAL DINNER GOVT; \n12515 LUNCH ? \n12516 COMPLIMENTARY BANQUET GIVEN BY THE CITY GOVERN... RESTAURANT \n12517 FEST-BANKETT RESTAURANT \n12632 NaN NaN \n\n place physical_description occasion \\\nid \n12503 DELMONICO'S FOL; 4.75 x 7.25; NaN \n12515 DENVER, COLO; CARD;3.5 X 5; NaN \n12516 BOSTON, MA BROADSIDE; ILLUS; 4.25 X 11.75 NaN \n12517 DER LIEDERKRANZ HALLE BOOKLET; ILLUS; COL; 6 X 7.5 NaN \n12632 NaN NaN NaN \n\n notes call_number \\\nid \n12503 SEAL ON COVER; FRENCH; INCLUDES WINES SERVED W... 1888-0010 \n12515 NaN 1888-0611 \n12516 MENU PRINTED IN BLACK ON CREAM SILK RIBBON WIT... 1865-0001 \n12517 MENU IS IN GERMAN; FOOD SELECTIONS REPRESENT V... 1892-0112 \n12632 NaN NaN \n\n keywords language date \\\nid \n12503 NaN NaN 1888-01-23 \n12515 NaN NaN 1888-10-15 \n12516 NaN NaN 1865-09-28 \n12517 NaN NaN 1892-05-19 \n12632 NaN NaN 1890-01-06 \n\n location location_type \\\nid \n12503 Police Department Of The City Of New York NaN \n12515 The Albany NaN \n12516 Parker House NaN \n12517 National Verbandes Deutsch Amerikanischer Jour... NaN \n12632 Spiers & Pond,Ld NaN \n\n currency currency_symbol status page_count dish_count \\\nid \n12503 NaN NaN under review 3 30 \n12515 NaN NaN complete 2 30 \n12516 Dollars $ complete 4 427 \n12517 NaN NaN under review 2 21 \n12632 NaN NaN complete 4 32 \n\n date_year \nid \n12503 1888 \n12515 1888 \n12516 1865 \n12517 1892 \n12632 1890 "
}
],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": "To inspect the values of any column use the \"dot\" syntax, e.g. \u2026"
},
{
"cell_type": "code",
"collapsed": false,
"input": "cleaned_c19.sponsor",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": "id\n12503 POLICE DEPARTMENT OF THE CITY OF NEW YORK\n12515 THE ALBANY\n12516 REVERE HOUSE\n12517 NATIONAL VERBANDES DEUTSCH AMERIKANISCHER JOUR...\n12632 NaN\n12633 NaN\n12635 NaN\n12636 NaN\n12637 NaN\n14590 NaN\n14591 NaN\n14592 NaN\n17196 NaN\n20379 OCEANIC STEAMSHIP CO. - S.S.ZEALANDIA\n20980 HOLLAND-AMERICAN LINE\n...\n26310 CASINO UNION\n26314 HAMBURG AMERIKA LINIE\n26315 DELMONICO'S\n26316 CORPS CONSULAIRE\n26319 GRAND MASTER OF NEW YORK\n26323 ALUMNI CLASS OF CCNY\n26328 THE ALDINE CLUB\n26329 NORDDEUTCHER LLOYD BREMEN\n26331 ATLANTA CHAMBER OF COMMERCE\n26451 A Stockholm restaurant\n27110 Hotel Del Monte\n27205 Harvard Club of San Francisco\n27206 The Musicians Club of San Francisco\n27213 Hotel Del Monte\n34079 New Map of Brooklyn and vicinity, for the Broo...\nName: sponsor, Length: 1809, dtype: object"
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Or, with counts \u2026"
},
{
"cell_type": "code",
"collapsed": false,
"input": "cleaned_c19.sponsor.value_counts()",
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 14,
"text": "NORDDEUTSCHER LLOYD BREMEN 51\n? 43\nNORDDEUTCHER LLOYD BREMEN 21\nHAMBURG-AMERIKA LINIE 14\nNEW GLADSTONE 13\nHAMBURG-AMERICA LINIE 12\nR.M.S.MAJESTIC 11\nPENNSYLVANIA RAILROAD 9\nDELMONICO'S 9\nSANTA FE ROUTE DINING CAR SERVICE 8\nWINDSOR HOTEL 8\nUNION LEAGUE CLUB 7\nSAINT NICHOLAS SOCIETY 7\nTHE WINDSOR 7\nPOLAND SPRING HOUSE 7\n...\nCORPS CONSULAIRE 1\nSOCIETY OF CINCINNATI IN THE STATE OF RHODE ISLAND 1\nDINER DE S.M. 1\nBOWDOIN COLLEGE 1\nADIRONDACK HOTEL LEAGUE 1\nSOCIETA'LA PIEMONTESE 1\nFIDELIO CLUB 1\nLARKIN HOUSE 1\nPHILOMATH CLUB 1\n22ND REGIMENT A.G.S.A.Y. 1\nHOTEL ALGAZAR 1\nLOUISIANA BAR ASSOCIATION 1\nTAUNTON BOARD OF TRADE 1\nNORDSTJERNAN 1\nTHE ALMA 1\nLength: 1248, dtype: int64"
}
],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": "cleaned_c19.to_csv('/Users/libraries/Downloads/menus_1850-1899.csv', encoding='utf-8')",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 15
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.