{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 11 -- Panda Readers " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Topics Covered" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "pd.read_csv(URL) method\n", "\n", "SQL Alchemy Under the Covers\n", "\n", " read_sql_table \n", "\n", " read_sql_query \n", "\n", "DataFrame.to_sql \n", "\n", "pd.read_sas() method\n", "\n", "Resources" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pyodbc\n", "import sys\n", "import pandas as pd\n", "import numpy as np\n", "from sqlalchemy import create_engine, MetaData, Table, select\n", "from IPython.display import Image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Return the Python and panda version being used since the database library drivers need to be properly aligned." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python version 3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]\n", "Pandas version 0.18.1\n" ] } ], "source": [ "print('Python version ' + sys.version)\n", "print('Pandas version ' + pd.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## pd.read_csv(URL) method " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook contains several examples of the pd.read_csv() method. Additional examples are used in Chapter 04--Pandas, Part 1, located here, and 2 additional examples in Chapter 09--Pandas Time Series and Date Handling, located here.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The pd.read_csv() method accepts a range of file format types. In the example below, a URL is given as the input source. In the SAS example that follows, the FILENAME URL access method is utilized to the same effect." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "fips = pd.read_csv('http://www2.census.gov/geo/docs/reference/codes/files/national_county.txt',\n", " header=None,names=['state','state_fips','county_fips','county','fips_class_code'])\n", "fips.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c11_read_csv_url_method.sas */\n", " /******************************************************/\n", " 44 filename ctyfips url \"http://www2.census.gov/geo/docs/reference/codes/files/national_c\n", " 44 ! ounty.txt\";\n", " 45 \n", " 46 data cnty_fips;\n", " 47 length county_nm $ 40\n", " 48 st_name $ 32 ;\n", " 49 \n", " 50 infile ctyfips dlm=',';\n", " 51 input st_abrev $\n", " 52 st_fips $\n", " 53 cnty_fips $\n", " 54 county_nm $\n", " 55 ;\n", " 56 \n", " 57 st_name = fipnamel(st_fips);\n", "\n", "````" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## SQLAlchemy Under the Covers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The clever folks who brought you pandas also figured out they can avoid re-inventing so they utilize SQLAlchemy as an abstraction layer to the usual databases out there. This approach reduces the amount of database-dependent code pandas need internally.\n", "\n", "Using SQLAlchemy you can pass SQLAlchemy Expression language constructs which are database-agnostic. This is analogous to PROC SQL's behavior of general SQL constructs being translated to specific a database without you having to know the specific SQL dialect.\n", "\n", "Two parts needed. You need the SQLAlchemy package. Im my case, it was a part of the Anaconda 4.1 distribution for Windows. \n", "\n", "The second is the driver library for the target database. In my case, I am using MS SQL/Server, 2016. The target database used below is AdventureWorksDW2012 which Microsoft provides to illustrate their Analytical Services. \n", "\n", "The examples are analogous to SAS' SQL pass-thru approach where PROC SQL is a wrapper to pass-thru the SQL dialect specific to the database. \n", "\n", "To connect to the database with SQLAlchemy, you construct a connection string to the database (uri) using the create_engine() method. The SQLAlchemy doc for the various databases are here . This only needs to be executed once for the connection shown as:\n", "\n", " ServerName = \"homeoffice2\"\n", " Database = \"AdventureWorksDW2012?driver=SQL+Server+Native+Client+11.0\"\n", " TableName = \"DimCustomer\"\n", "\n", " engine = create_engine('mssql+pyodbc://' + ServerName + '/' + Database, legacy_schema_aliasing=False)\n", " \n", "The string:\n", " \n", " ?driver=SQL+Server+Native+Client+11.0\n", " \n", "was needed to inform SQLAlchemy the name of the specific database client library. This is found on the Driver's tab of the ODBC Data Source Adminstrator." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/4RDcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAGAAAISodpAAQA\nAAABAAAIUJydAAEAAAAMAAAQyOocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhbmR5AAAFkAMAAgAA\nABQAABCekAQAAgAAABQAABCykpEAAgAAAAM4NwAAkpIAAgAAAAM4NwAA6hwABwAACAwAAAiSAAAA\nABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAMjAxNjoxMDoyNiAxNDo1ODozOQAyMDE2OjEwOjI2IDE0OjU4OjM5AAAAcgBhAG4A\nZAB5AAAA/+ELGGh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfv\nu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0i\nYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5\nOS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6\nZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1\ncmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVp\nZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDov\nL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMTYtMTAtMjZUMTQ6NTg6\nMzkuODcyPC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9u\nIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHht\nbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJk\nZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgt\nbnMjIj48cmRmOmxpPnJhbmR5PC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwv\ncmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\nICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/b\nAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsa\nIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioq\nKioqKioqKioqKioqKioqKioqKioqKv/AABEIAaMCUgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAA\nAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEU\nMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl\nZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK\n0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUG\nBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS\n8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4\neXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri\n4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APfPC3/In6N/14Qf+i1qpqXjrw7pGpy6fqGo\nGK6hxvjFvK2MqGHIUjoRVvwt/wAifo3/AF4Qf+i1rB1i9tlvr14dPsr24Mm3bLKqkYAXLdSB8p6A\nmt58vtZc3dmML+zjbsi8nxB8Myfc1Bz/ANuk3/xFdFBNHc28c8Lbo5VDo2MZBGQa4bStZ0S+u4bW\n4sbO2vHkK+QYmbdjP3WxgjjIyB9M1v3eq/2D8P5NVEXm/YdN88R5xu2x5xnt0rOfKl7qZpBSbs2b\ntFcdG2v6Bf6NJqmuyasmpzm2uYHt4o44HMbuGh2IGCgptw7OcHOcjnJ8M6t4hh0nwnq+oa5PqsOu\nhYrq2uLeFfJd4mkV4jEiEAFMEPuyDwQRzD0v5Fbq/wA/l/SPR6K8i8L+PNUi0RdVv9UvtUA0KbUL\nm31GzS0HnJsKi3YRR+YnLBmG8L8nzDIz6Ho2maxbzLd6r4gmvmlT97aC3hS3jY8/usL5gA6fO78e\n/Idmv69f8gejt/X9am1RXnuqX/iL7b4w1HT9emhXQZEa3057eFreVRbRysrnZ5vzFmGQ4xkcHGDr\n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\nVs0ULTb+uoGLrPhx9YkglGs6hYzW1z9ot5bZYCYiYjGVAeJgVIZj8wJyeCBgCpN4KhktLVbfWNSt\nb23u2vG1GPyWmmlaMxszh42TlWxgKAAAAABiulooA5r/AIRC5XUhfw+K9aiuWgjgndY7M/aAjOyl\ngbcgH94w+XbxjvzXS0UUAZ+r6VJqkMQt9UvtLmifcs9k6Z5GCCsisjDn+JTjqMGq+jeGbLRIZo7W\nS4cSxpFulk+ZUUHgMMHlmdyeu5zzjAGxRQBzVr4JgivEub7V9U1OSNotpvJIziOMlkj+VFyA5Dlj\nl2KLuYgYp954Ra58VHXrfX9UsrhoUgMMK2zxiNTuKjzIWZdx+9tYZwPQY6KigDA0zwjb6ZrP29L+\n9nRDMba0mMflWxmffIU2oHOT/eZsZOMUtjpcGka5bW9s0jJJHf3JMhBO6WeORhwBxlzj2x1rerOn\n/wCRnsv+vO4/9DhoQGjWXD/x7x/7o/lWpWXD/wAe8f8Auj+VAHz74l/5GzVv+v2b/wBDNFHiX/kb\nNW/6/Zv/AEM0V+g0v4cfRHwFX+JL1Z7foH/Imab/ANg+L/0WK6euY0D/AJEzTf8AsHxf+ixXT18F\nV/iS9Wfd0v4cfRGdrn/IPi/6/LX/ANHx1o1na5/yD4v+vy1/9Hx1o1maBRRRQAUUUUAFFFFABRRR\nQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA\nBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF\nFFFABWdP/wAjPZf9edx/6HDWjWdP/wAjPZf9edx/6HDQBo1lw/8AHvH/ALo/lWpWXD/x7x/7o/lQ\nB8++Jf8AkbNW/wCv2b/0M0UeJf8AkbNW/wCv2b/0M0V+g0v4cfRHwFX+JL1Z7foH/Imab/2D4v8A\n0WK6euY0D/kTNN/7B8X/AKLFdPXwVX+JL1Z93S/hx9EZ2uf8g+L/AK/LX/0fHWjWdrn/ACD4v+vy\n1/8AR8daNZmgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA\nUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR\n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\n+QXCAt/EV2lgTk8mqlbW3n/wP6/AS318v+D/AF+JiN438QxazFo9z4b09dRnaLylTV2aIK8cz5d/\nIBBHkEYCt94c1Sj+Kd2949qmhwzvIU+xyw3NwIbgNPHDuEstsikfvVbMfmAjPPTOr4V+H0ehXj32\np3p1K8DoYGD3ASAIjoABNPK3SV+N23kYUHk3bX4f+HLO7juIrS5Z4QohWXULiRIVWRZFWNGcqihk\nQ7VAHygYxxRpzLsLW3mQ+G/F99rOqpZ6hpENiJIrho3ivDNloJhFICDGuF3HKnOSOoXpXV1lx+G9\nLiJMMEkTeXPGHjnkVlEz75MMGyCWAORyO2K1AMDFLoh9QooooAKKKKACiiigAooooAKKKKACiiig\nAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACom/4/I/+ubfzWpai\nb/j8j/65t/NaAJay4f8Aj3j/AN0fyrUrLh/494/90fyoA+ffEv8AyNmrf9fs3/oZoo8S/wDI2at/\n1+zf+hmiv0Gl/Dj6I+Aq/wASXqz2/QP+RM03/sHxf+ixXT1zGgf8iZpv/YPi/wDRYrp6+Cq/xJer\nPu6X8OPoiK4/1Q/66J/6EKlqK4/1Q/66J/6EKlrM0Ma/0LSlUTJolrOwfc6pbRlnyD64zyc1nHTd\nLLM3/CJPll2nFvDjHPQbuDz16/lXVUUAcqunaemPK8L3ERCGPdHHGjYOM8h85469asQwSPPYw2+n\nXdvFDcmZ3uGDZyrA87iSct3roqKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA\nCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK\nKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqJv+PyP/rm381qWom/4/I/+ubfzWgCWsuH\n/j3j/wB0fyrUrLh/494/90fyoA+ffEv/ACNmrf8AX7N/6GaKPEv/ACNmrf8AX7N/6GaK/QaX8OPo\nj4Cr/El6s9v0D/kTNN/7B8X/AKLFdPXMaB/yJmm/9g+L/wBFiunr4Kr/ABJerPu6X8OPoiK4/wBU\nP+uif+hCpaiuM+TwCcOp4Gf4hR9oT+7J/wB+m/wrM0JaKi+0J/dk/wC/Tf4UfaE/uyf9+m/woAlo\nqL7Qn92T/v03+FH2hP7sn/fpv8KAJaKi+0J/dk/79N/hR9oT+7J/36b/AAoAloqL7Qn92T/v03+F\nH2hP7sn/AH6b/CgCWiovtCf3ZP8Av03+FH2hP7sn/fpv8KAJaKi+0J/dk/79N/hR9oT+7J/36b/C\ngCWiovtCf3ZP+/Tf4UfaE/uyf9+m/wAKAJaKi+0J/dk/79N/hR9oT+7J/wB+m/woAloqL7Qn92T/\nAL9N/hR9oT+7J/36b/CgCWiovtCf3ZP+/Tf4UfaE/uyf9+m/woAloqL7Qn92T/v03+FH2hP7sn/f\npv8ACgCWiovtCf3ZP+/Tf4UfaE/uyf8Afpv8KAJaKi+0J/dk/wC/Tf4UfaE/uyf9+m/woAloqL7Q\nn92T/v03+FH2hP7sn/fpv8KAJaKi+0J/dk/79N/hR9oT+7J/36b/AAoAloqL7Qn92T/v03+FH2hP\n7sn/AH6b/CgCWiovtCf3ZP8Av03+FH2hP7sn/fpv8KAJaKi+0J/dk/79N/hR9oT+7J/36b/CgCWi\novtCf3ZP+/Tf4UfaE/uyf9+m/wAKAJaKi+0J/dk/79N/hR9oT+7J/wB+m/woAloqL7Qn92T/AL9N\n/hR9oT+7J/36b/CgCWiovtCf3ZP+/Tf4UfaE/uyf9+m/woAloqL7Qn92T/v03+FH2hP7sn/fpv8A\nCgCWiovtCf3ZP+/Tf4UfaE/uyf8Afpv8KAJaKi+0J/dk/wC/Tf4UfaE/uyf9+m/woAloqL7Qn92T\n/v03+FH2hP7sn/fpv8KAJaKi+0J/dk/79N/hR9oT+7J/36b/AAoAloqL7Qn92T/v03+FH2hP7sn/\nAH6b/CgCWiovtCf3ZP8Av03+FH2hP7sn/fpv8KAJaKi+0J/dk/79N/hR9oT+7J/36b/CgCWiovtC\nf3ZP+/Tf4UfaE/uyf9+m/wAKAJaKi+0J/dk/79N/hR9oT+7J/wB+m/woAloqL7Qn92T/AL9N/hR9\noT+7J/36b/CgCWom/wCPyP8A65t/NaPtCf3ZP+/Tf4U0OJLpCqvgIwJZCO49fpQBPWXD/wAe8f8A\nuj+ValZcP/HvH/uj+VAHz74l/wCRs1b/AK/Zv/QzRR4l/wCRs1b/AK/Zv/QzRX6DS/hx9EfAVf4k\nvVnt+gf8iZpv/YPi/wDRYrp65nw+C3g7TFHJNhEB/wB+xW59uH/PGX/x3/Gvgqv8SXqz7ul/Dj6I\ntUVV+3D/AJ4y/wDjv+NH24f88Zf/AB3/ABrM0LVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVF\nVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw\n/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCe\nMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A\n47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/j\nR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH\n/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX\n/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd\n/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAa\nALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVF\nVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw\n/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCe\nMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A\n47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/j\nR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH\n/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX/wAd/wAaALVFVftw/wCeMv8A47/jR9uH/PGX\n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\nxL/yNmrf9fs3/oZooor9Bpfw4+iPgKv8SXqz/9k=\n", "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Image(filename='Anaconda3\\\\output\\\\odbc.JPG')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, create a tuple of parameter values to pass to the create_engine= assignment to identify the Python package used on the client-side as well as the database server name, target database, and target table. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ServerName = \"homeoffice2\"\n", "Database = \"AdventureWorksDW2012?driver=SQL+Server+Native+Client+11.0\"\n", "TableName = \"DimCustomer\"\n", "\n", "engine = create_engine('mssql+pyodbc://' + ServerName + '/' + Database, legacy_schema_aliasing=False)\n", "conn = engine.connect()\n", "\n", "metadata = MetaData(conn)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## read_sql_table()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The read_sql_table() method reads a database table and optionally a subset of columns. The syntax is documented here ." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For clarity, we build a list of columns we want to have returned along with a table name that are used as arguments in the next set of examples." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "col_names = ['FirstName', 'LastName', 'BirthDate', 'Gender', 'YearlyIncome', 'CustomerKey']\n", "tbl = 'DimCustomer'" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 18484 entries, 0 to 18483\n", "Data columns (total 6 columns):\n", "FirstName 18484 non-null object\n", "LastName 18484 non-null object\n", "BirthDate 18484 non-null datetime64[ns]\n", "Gender 18484 non-null object\n", "YearlyIncome 18484 non-null float64\n", "CustomerKey 18484 non-null int64\n", "dtypes: datetime64[ns](1), float64(1), int64(1), object(3)\n", "memory usage: 866.5+ KB\n" ] } ], "source": [ "t0 = pd.read_sql_table(tbl, engine, columns=col_names)\n", "t0.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Designate an incoming column to be used as the DataFrame index with the index_col= argument." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Int64Index([11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008,\n", " 11009,\n", " ...\n", " 29474, 29475, 29476, 29477, 29478, 29479, 29480, 29481, 29482,\n", " 29483],\n", " dtype='int64', name='CustomerKey', length=18484)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t1 = pd.read_sql_table(tbl, engine, columns=col_names, index_col='CustomerKey')\n", "t1.index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Coerce date strings into date objects. The example below is redundant since the query engine was smart enough to determine t0['BirthDate'] is a date column. This is shown by examining output from t0.info() call showing the column as type datetime64." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t2 = pd.read_sql_table(tbl, engine, columns=col_names, index_col='CustomerKey', \\\n", " parse_dates={'BirthDate': {'format': '%Y-%m-%d'}})\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Review the incoming columns and their attributes." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 18484 entries, 11000 to 29483\n", "Data columns (total 5 columns):\n", "FirstName 18484 non-null object\n", "LastName 18484 non-null object\n", "BirthDate 18484 non-null datetime64[ns]\n", "Gender 18484 non-null object\n", "YearlyIncome 18484 non-null float64\n", "dtypes: datetime64[ns](1), float64(1), object(3)\n", "memory usage: 866.4+ KB\n" ] } ], "source": [ "t2.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Review the customer index key values." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Int64Index([11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008,\n", " 11009,\n", " ...\n", " 29474, 29475, 29476, 29477, 29478, 29479, 29480, 29481, 29482,\n", " 29483],\n", " dtype='int64', name='CustomerKey', length=18484)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t2.index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Display the first 5 rows for the the 'BirthDate' column. Also notice above, from the .info() method how the t2['BirthDate'] column was read as datetime timestamps." ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "CustomerKey\n", "11000 1966-04-08\n", "11001 1965-05-14\n", "11002 1965-08-12\n", "11003 1968-02-15\n", "11004 1968-08-08\n", "Name: BirthDate, dtype: datetime64[ns]" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t2[\"BirthDate\"].head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The SAS program below reads the same input table from SQL/Server called DimCustomer. Under the covers, SAS constructs the appropriate TSQL statements to retrieve rows and columns forming the SAS data set WORK.CUSTOMERS.\n", "\n", "In this case, SAS reads the 'BirthDate' variable as a string. The SAS/Access product line provide an array of SAS Data Set options to map data types between SAS and SQL/Server described here. SAS/Access products are outside the scope of these examples. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c11_pd.read_sql_table.sas */\n", " /******************************************************/\n", " 4 proc pwencode in=XXXXXXXXX;\n", " {sas001}UG9yc2hjZSMx\n", " 5 \n", " 6 libname sqlsrvr odbc\n", " 7 uid=randy\n", " 8 pwd=XXXXXXXXXXXXXXXXXXXX\n", " 9 datasrc=mssql\n", " 10 bulkload=yes;\n", " 11 \n", " 12 proc sql;\n", " 13 create table customers as\n", " 14 select FirstName,\n", " 15 LastName,\n", " 16 BirthDate,\n", " 17 Gender,\n", " 18 YearlyIncome,\n", " 19 CustomerKey\n", " 20 from sqlsrvr.DimCustomer;\n", " NOTE: Data set \"WORK.customers\" has 18484 observation(s) and 6 variable(s)\n", " 21 quit;\n", " 22 \n", " 23 data _null_;\n", " 24 set customers(obs=5);\n", " 25 \n", " 26 bdate = input(birthdate, yymmdd10.);\n", " 27 bd_f = put(bdate, yydddd10.);\n", " 28 \n", " 29 put bd_f;\n", "\n", " 1966-04-08\n", " 1965-05-14\n", " 1965-08-12\n", " 1968-02-15\n", " 1968-08-08\n", "````" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## read_sql_query() method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The read_sql_query() method returns a DataFrame based on the evaluation of a query string. It is similiar to the read_sql_table() method described above. \n", "\n", "You must use the appropriate SQL dialect for the target database. This is analogous to SAS' SQL pass-thru." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "q1 = pd.read_sql_query('SELECT FirstName, LastName, Gender, BirthDate, YearlyIncome '\n", " 'FROM dbo.DimCustomer '\n", " 'WHERE YearlyIncome > 50000;'\n", " , engine)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 9858 entries, 0 to 9857\n", "Data columns (total 5 columns):\n", "FirstName 9858 non-null object\n", "LastName 9858 non-null object\n", "Gender 9858 non-null object\n", "BirthDate 9858 non-null object\n", "YearlyIncome 9858 non-null float64\n", "dtypes: float64(1), object(4)\n", "memory usage: 385.2+ KB\n" ] } ], "source": [ "\n", "q1.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The SAS analog example for pd.read_sql_query in cell #12 above is shown below. Similiar to the create_engine() method, the connect to ODBC statement uses a series of arguments to used to make authenicated calls into the database. All of the SQL statements inside the parethensized expression is not scanned by the SAS tokenizer/parser and is passed to the database for execution. Returning rows and columns are returned by the ODBC api." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " 15 LIBNAME in_sql ODBC DSN=\"mssql\";\n", " 16 \n", " 17 proc sql;\n", " 18 connect to odbc(datasrc=mssql uid=randy password=XXXXXXXX);\n", " NOTE: Successfully connected to database ODBC as alias ODBC.\n", " 19 create table q1 as\n", " 20 select * from connection to odbc\n", " 21 (select FirstName,\n", " 22 LastName,\n", " 23 Gender,\n", " 24 BirthDate,\n", " 25 YearlyIncome\n", " 26 from dbo.DimCustomer\n", " 27 where YearlyIncome > 50000);\n", " NOTE: Data set \"WORK.q1\" has 9858 observation(s) and 5 variable(s)\n", "````" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "...or pass a DocStrings to the pd.read_sql_query() method." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "sql_str = '''SELECT\n", " FirstName,\n", " LastName,\n", " Gender,\n", " CustomerKey,\n", " BirthDate\n", " FROM DimCustomer \n", " WHERE YearlyIncome > 120000''' \n", "\n", "q2 = pd.read_sql_query(sql_str, engine, index_col='CustomerKey')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 821 entries, 11079 to 29261\n", "Data columns (total 4 columns):\n", "FirstName 821 non-null object\n", "LastName 821 non-null object\n", "Gender 821 non-null object\n", "BirthDate 821 non-null object\n", "dtypes: object(4)\n", "memory usage: 32.1+ KB\n" ] } ], "source": [ "q2.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can execute a query without returning a dataframe with execute(). This is useful for queries that don’t return values, such as a DROP TABLE statement. You must use the SQL dialect appropriate for the target database." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from pandas.io import sql\n", "sql.execute('DROP TABLE dbo.df2', engine)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DataFrame.to_sql" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Construct the DataFrame to load into SQL/Server." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = pd.DataFrame([['cold','slow', np.nan, 2., 6., 3.], \n", " ['warm', 'medium', 4, 5, 7, 9],\n", " ['hot', 'fast', 9, 4, np.nan, 6],\n", " ['cool', None, np.nan, np.nan, 17, 89],\n", " ['cool', 'medium', 16, 44, 21, 13],\n", " ['cold', 'slow', np.nan, 29, 33, 17]],\n", " columns=['col1', 'col2', 'col3', 'col4', 'col5', 'col6'],\n", " index=(list('abcdef')))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The .DataFrame.to_sql method loads a target DBMS table with the rows and columns from a DataFrame. The syntax is documented here . The method has the chunksize= parameter where the default None writes all rows at once. The doc does not specify how the writes take place, either through SQL INSERT statements or uses a bulk copy interface." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df.to_sql('dbo.DF2', engine, if_exists='replace',index=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The analog SAS program to copy a SAS data set to the target DBMS is below. Note the PROC PWENCODE used to encode strings to prevent passwords from being stored in clear text. Also notice the LIBNAME option bulkload=yes. This causes the load operation to go through the RDBMS' bulk load interface." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "````\n", " /******************************************************/\n", " /* c11_DataFrame.to_sql.sas */\n", " /******************************************************/\n", "\n", " 56 proc pwencode in=XXXXXXXXX;\n", " {sas001}UG9yc2hjZSMx\n", " 57 \n", " 58 libname sqlsrvr odbc\n", " 59 uid=randy\n", " 60 pwd=XXXXXXXXXXXXXXXXXXXX\n", " 61 datasrc=mssql\n", " 62 bulkload=yes;\n", "\n", " 63 \n", " 64 data sqlsrvr.tickets;\n", " 65 set tickets;\n", "\n", " NOTE: 72 observations were read from \"WORK.tickets\"\n", " NOTE: Data set \"SQLSRVR.tickets\" has an unknown number of observation(s) and 5 variable(s)\n", " \n", "````" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## pd.read_sas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The pd.read_sas() method maps either a SAS data set (.sas7bdat file) or a SAS transport data set (.xpt file) directly into a DataFrame. The syntax details are located here. This is a SAS data set created by Base SAS software and not WPS." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df4 = pd.read_sas(\"c:\\\\Data\\\\accident.sas7bdat\", format='SAS7BDAT')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 32166 entries, 0 to 32165\n", "Data columns (total 52 columns):\n", "STATE 32166 non-null float64\n", "ST_CASE 32166 non-null float64\n", "VE_TOTAL 32166 non-null float64\n", "VE_FORMS 32166 non-null float64\n", "PVH_INVL 32166 non-null float64\n", "PEDS 32166 non-null float64\n", "PERNOTMVIT 32166 non-null float64\n", "PERMVIT 32166 non-null float64\n", "PERSONS 32166 non-null float64\n", "COUNTY 32166 non-null float64\n", "CITY 32166 non-null float64\n", "DAY 32166 non-null float64\n", "MONTH 32166 non-null float64\n", "YEAR 32166 non-null float64\n", "DAY_WEEK 32166 non-null float64\n", "HOUR 32166 non-null float64\n", "MINUTE 32166 non-null float64\n", "NHS 32166 non-null float64\n", "RUR_URB 32166 non-null float64\n", "FUNC_SYS 32166 non-null float64\n", "RD_OWNER 32166 non-null float64\n", "ROUTE 32166 non-null float64\n", "TWAY_ID 32166 non-null object\n", "TWAY_ID2 8400 non-null object\n", "MILEPT 32166 non-null float64\n", "LATITUDE 32166 non-null float64\n", "LONGITUD 32166 non-null float64\n", "SP_JUR 32166 non-null float64\n", "HARM_EV 32166 non-null float64\n", "MAN_COLL 32166 non-null float64\n", "RELJCT1 32166 non-null float64\n", "RELJCT2 32166 non-null float64\n", "TYP_INT 32166 non-null float64\n", "WRK_ZONE 32166 non-null float64\n", "REL_ROAD 32166 non-null float64\n", "LGT_COND 32166 non-null float64\n", "WEATHER1 32166 non-null float64\n", "WEATHER2 32166 non-null float64\n", "WEATHER 32166 non-null float64\n", "SCH_BUS 32166 non-null float64\n", "RAIL 32166 non-null object\n", "NOT_HOUR 32166 non-null float64\n", "NOT_MIN 32166 non-null float64\n", "ARR_HOUR 32166 non-null float64\n", "ARR_MIN 32166 non-null float64\n", "HOSP_HR 32166 non-null float64\n", "HOSP_MN 32166 non-null float64\n", "CF1 32166 non-null float64\n", "CF2 32166 non-null float64\n", "CF3 32166 non-null float64\n", "FATALS 32166 non-null float64\n", "DRUNK_DR 32166 non-null float64\n", "dtypes: float64(49), object(3)\n", "memory usage: 12.8+ MB\n" ] } ], "source": [ "df4.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following SAS program was used to create both a SAS data and a SAS transport SAS data set. Both were created with Version: 3.2.2 of the WPS Workbench for Windows. The SAS data DATA.COMPANY failed to be read with the pd.read_sas() method. The SAS transport file was read correctly below." ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "````\n", " /******************************************************/\n", " /* c11_write_export_file.sas */\n", " /******************************************************/\n", " 93 libname data 'c:\\data';\n", " 94 libname xptout xport \"c:\\data\\company.xpt\";\n", " 95 \n", " 96 data data.company;\n", " 97 input Name $ 1-25 Age 27-28 Gender $ 30;\n", " 98 datalines;\n", " 99 \n", " 100 Vincent, Martina 34 F\n", " 101 Phillipon, Marie-Odile 28 F\n", " 102 Gunter, Thomas 27 M\n", " 103 Harbinger, Nicholas 36 M\n", " 104 Benito, Gisela 32 F\n", " 105 Rudelich, Herbert 39 M\n", " 106 Sirignano, Emily 12 F\n", " 107 Morrison, Michael 32 M\n", " 108 ;;;;\n", " 109 \n", " 110 proc copy in = data\n", " 111 out = xptout;\n", " 112 select company;\n", "\n", " NOTE: Member \"DATA.COMPANY.DATA\" (memtype=DATA) copied\n", " NOTE: 1 member copied\n", "````" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using Version: 3.2.2 of the WPS Workbench for Windows to create its .wpd format as input to the pd.read_sas() method fails. That is because the binary file format chosen by WPS does not match those from SAS. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ValueError", "evalue": "magic number mismatch (not a SAS file?)", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mdf5\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_sas\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"c:\\\\Data\\\\company.wpd\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'SAS7BDAT'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[1;32mC:\\Users\\randy\\Anaconda3\\lib\\site-packages\\pandas\\io\\sas\\sasreader.py\u001b[0m in \u001b[0;36mread_sas\u001b[1;34m(filepath_or_buffer, format, index, encoding, chunksize, iterator)\u001b[0m\n\u001b[0;32m 52\u001b[0m reader = SAS7BDATReader(filepath_or_buffer, index=index,\n\u001b[0;32m 53\u001b[0m \u001b[0mencoding\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mencoding\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 54\u001b[1;33m chunksize=chunksize)\n\u001b[0m\u001b[0;32m 55\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 56\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'unknown SAS format'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mC:\\Users\\randy\\Anaconda3\\lib\\site-packages\\pandas\\io\\sas\\sas7bdat.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, path_or_buf, index, convert_dates, blank_missing, chunksize, encoding, convert_text, convert_header_text)\u001b[0m\n\u001b[0;32m 94\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_path_or_buf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_path_or_buf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'rb'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 95\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 96\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_get_properties\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 97\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_parse_metadata\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 98\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32mC:\\Users\\randy\\Anaconda3\\lib\\site-packages\\pandas\\io\\sas\\sas7bdat.py\u001b[0m in \u001b[0;36m_get_properties\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_cached_page\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_path_or_buf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m288\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 104\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_cached_page\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mconst\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[0mconst\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmagic\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 105\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"magic number mismatch (not a SAS file?)\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 106\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 107\u001b[0m \u001b[1;31m# Get alignment information\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: magic number mismatch (not a SAS file?)" ] } ], "source": [ "df5 = pd.read_sas(\"c:\\\\Data\\\\company.wpd\", format='SAS7BDAT')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using Version: 3.2.2 of the WPS Workbench for Windows to create a SAS transport file (.xpt) as input to the pd.read_sas() method works." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "df6 = pd.read_sas(\"c:\\\\Data\\\\company.xpt\", format='xport')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 9 entries, 0 to 8\n", "Data columns (total 3 columns):\n", "NAME 9 non-null object\n", "AGE 8 non-null float64\n", "GENDER 9 non-null object\n", "dtypes: float64(1), object(2)\n", "memory usage: 296.0+ bytes\n" ] } ], "source": [ "df6.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Resources\n", "\n", " SQL Queries , from the pandas.org doc.\n", "\n", " How to pull data from a microsoft sql database \n", "\n", " defining the create_engine() method from the SQLAlchemy doc." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Navigation\n", "\n", " Return to Chapter List " ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [Root]", "language": "python", "name": "Python [Root]" }, "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.5.2" } }, "nbformat": 4, "nbformat_minor": 0 }