From 00b00efb4b5cf661f6c5ba4f9ffc3cb994fddcae Mon Sep 17 00:00:00 2001 From: brettasmi Date: Fri, 3 Nov 2017 16:41:54 -0700 Subject: [PATCH] add final Jupyter notebook --- Pandas Journey final.ipynb | 2903 ++++++++++++++++++++++++++++++++++++ 1 file changed, 2903 insertions(+) create mode 100644 Pandas Journey final.ipynb diff --git a/Pandas Journey final.ipynb b/Pandas Journey final.ipynb new file mode 100644 index 0000000..7ba0118 --- /dev/null +++ b/Pandas Journey final.ipynb @@ -0,0 +1,2903 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "711013000" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RPSALE = pd.read_csv('data/EXTR_RPSale.csv', low_memory=False)\n", + "RPSALE[\"SalePrice\"].max()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ExciseTaxNbrMajorMinorDocumentDateSalePriceRecordingNbrVolumePagePlatNbrPlatType...PropertyTypePrincipalUseSaleInstrumentAFForestLandAFCurrentUseLandAFNonProfitUseAFHistoricPropertySaleReasonPropertyClassSaleWarning
02642952720319052011/20/201369995020131126001594...263NNNN18
11381073154580122006/16/1994125000199406211626089011154580P...362NNNN18
22496482356730004506/09/201154220020110617001045...36318
31970507252505920606/25/200344300020030702002332...363NNNN18
41701215235930007207/08/199922500019990730000822...363NNNN18
\n", + "

5 rows × 24 columns

\n", + "
" + ], + "text/plain": [ + " ExciseTaxNbr Major Minor DocumentDate SalePrice RecordingNbr Volume \\\n", + "0 2642952 720319 0520 11/20/2013 699950 20131126001594 \n", + "1 1381073 154580 1220 06/16/1994 125000 199406211626 089 \n", + "2 2496482 356730 0045 06/09/2011 542200 20110617001045 \n", + "3 1970507 252505 9206 06/25/2003 443000 20030702002332 \n", + "4 1701215 235930 0072 07/08/1999 225000 19990730000822 \n", + "\n", + " Page PlatNbr PlatType ... PropertyType PrincipalUse SaleInstrument \\\n", + "0 ... 2 6 3 \n", + "1 011 154580 P ... 3 6 2 \n", + "2 ... 3 6 3 \n", + "3 ... 3 6 3 \n", + "4 ... 3 6 3 \n", + "\n", + " AFForestLand AFCurrentUseLand AFNonProfitUse AFHistoricProperty \\\n", + "0 N N N N \n", + "1 N N N N \n", + "2 \n", + "3 N N N N \n", + "4 N N N N \n", + "\n", + " SaleReason PropertyClass SaleWarning \n", + "0 1 8 \n", + "1 1 8 \n", + "2 1 8 \n", + "3 1 8 \n", + "4 1 8 \n", + "\n", + "[5 rows x 24 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RPSALE.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "RPSALE['MergeID'] = RPSALE['Major']+RPSALE['Minor']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1928494" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(RPSALE)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "RPSALE_TEST = RPSALE.drop_duplicates(subset='MergeID')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "662074" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(RPSALE_TEST)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "COMBUILD = pd.read_csv('data/EXTR_CommBldg.csv', low_memory=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MajorMinorBldgNbrNbrBldgsAddressBuildingNumberFractionDirectionPrefixStreetNameStreetType...BldgQualityBldgDescrBldgGrossSqFtBldgNetSqFtYrBuiltEffYrPcntCompleteHeatingSystemSprinklersElevators
01921059114111407 AUBURN WAY S ...1407AUBURNWAY...4RETAIL ...2129621296196719801006N
121220690573124409 WITTE RD SE...24409WITTERD...4Duplex ...12481248196019901001
23846101012927 N 100TH ST ...927N100THST...4SEATTLE HOUSING AUTH ...78927892198619911002NN
3881640755115229 UNIVERSITY WAY NE...5229UNIVERSITYWAY...4OFFICE & APTS ...22742274196319741001N
43035160111519 WEST VALLEY HWY N ...1519WEST VALLEYHWY...4OFFICE BLDG ...20428162881993199910011Y
\n", + "

5 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " Major Minor BldgNbr NbrBldgs \\\n", + "0 192105 9114 1 1 \n", + "1 212206 9057 3 1 \n", + "2 384610 10 1 2 \n", + "3 881640 755 1 1 \n", + "4 30351 60 1 1 \n", + "\n", + " Address BuildingNumber Fraction \\\n", + "0 1407 AUBURN WAY S ... 1407 \n", + "1 24409 WITTE RD SE... 24409 \n", + "2 927 N 100TH ST ... 927 \n", + "3 5229 UNIVERSITY WAY NE... 5229 \n", + "4 1519 WEST VALLEY HWY N ... 1519 \n", + "\n", + " DirectionPrefix StreetName StreetType ... \\\n", + "0 AUBURN WAY ... \n", + "1 WITTE RD ... \n", + "2 N 100TH ST ... \n", + "3 UNIVERSITY WAY ... \n", + "4 WEST VALLEY HWY ... \n", + "\n", + " BldgQuality BldgDescr \\\n", + "0 4 RETAIL ... \n", + "1 4 Duplex ... \n", + "2 4 SEATTLE HOUSING AUTH ... \n", + "3 4 OFFICE & APTS ... \n", + "4 4 OFFICE BLDG ... \n", + "\n", + " BldgGrossSqFt BldgNetSqFt YrBuilt EffYr PcntComplete HeatingSystem \\\n", + "0 21296 21296 1967 1980 100 6 \n", + "1 1248 1248 1960 1990 100 1 \n", + "2 7892 7892 1986 1991 100 2 \n", + "3 2274 2274 1963 1974 100 1 \n", + "4 20428 16288 1993 1999 100 11 \n", + "\n", + " Sprinklers Elevators \n", + "0 N \n", + "1 \n", + "2 N N \n", + "3 N \n", + "4 Y \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "COMBUILD.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "COMBUILD['MergeID'] = COMBUILD['Major'].map(str)+COMBUILD['Minor'].map(str)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "COMBUILD['Comm_or_Res'] = 'Comm'" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "COMBUILD = COMBUILD.drop_duplicates(subset='MergeID',keep='first')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "first_merge = pd.merge(RPSALE, COMBUILD, how='left', on='MergeID')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1928494 1928494\n" + ] + } + ], + "source": [ + "print len(RPSALE), len(first_merge)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "RESBUILD = pd.read_csv('data/EXTR_ResBldg.csv', low_memory=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MajorMinorBldgNbrNbrLivingUnitsAddressBuildingNumberFractionDirectionPrefixStreetNameStreetType...FpAdditionalYrBuiltYrRenovatedPcntCompleteObsolescencePcntNetConditionConditionAddnlCostMergeIDComm_or_Res
04011126910 86TH AVE S 980302691086THAVE...01915000030401Res
11004511922 22ND ST NE 9800292222NDST...0195200004010045Res
21009012923 28TH ST NE 9800292328THST...0197700004010090Res
31009511911 14TH ST NE 9800291114THST...0191400004010095Res
412071117760 MARINE VIEW DR SW 9816617760MARINE VIEWDR...019420000401207Res
\n", + "

5 rows × 52 columns

\n", + "
" + ], + "text/plain": [ + " Major Minor BldgNbr NbrLivingUnits Address \\\n", + "0 40 1 1 1 26910 86TH AVE S 98030 \n", + "1 100 45 1 1 922 22ND ST NE 98002 \n", + "2 100 90 1 2 923 28TH ST NE 98002 \n", + "3 100 95 1 1 911 14TH ST NE 98002 \n", + "4 120 7 1 1 17760 MARINE VIEW DR SW 98166 \n", + "\n", + " BuildingNumber Fraction DirectionPrefix StreetName \\\n", + "0 26910 86TH \n", + "1 922 22ND \n", + "2 923 28TH \n", + "3 911 14TH \n", + "4 17760 MARINE VIEW \n", + "\n", + " StreetType ... FpAdditional YrBuilt YrRenovated PcntComplete \\\n", + "0 AVE ... 0 1915 0 0 \n", + "1 ST ... 0 1952 0 0 \n", + "2 ST ... 0 1977 0 0 \n", + "3 ST ... 0 1914 0 0 \n", + "4 DR ... 0 1942 0 0 \n", + "\n", + " Obsolescence PcntNetCondition Condition AddnlCost MergeID Comm_or_Res \n", + "0 0 0 3 0 401 Res \n", + "1 0 0 4 0 10045 Res \n", + "2 0 0 4 0 10090 Res \n", + "3 0 0 4 0 10095 Res \n", + "4 0 0 4 0 1207 Res \n", + "\n", + "[5 rows x 52 columns]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RESBUILD['MergeID'] = RESBUILD['Major'].map(str)+RESBUILD['Minor'].map(str)\n", + "RESBUILD['Comm_or_Res'] = 'Res'\n", + "RESBUILD = RESBUILD.drop_duplicates(subset='MergeID',keep='first')\n", + "RESBUILD.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "501840" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(RESBUILD)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "comm_and_res = pd.merge(RESBUILD, COMBUILD, how='inner', on='MergeID')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Major_xMinor_xBldgNbr_xNbrLivingUnitsAddress_xBuildingNumber_xFraction_xDirectionPrefix_xStreetName_xStreetType_x...BldgDescrBldgGrossSqFtBldgNetSqFtYrBuilt_yEffYrPcntComplete_yHeatingSystemSprinklersElevatorsComm_or_Res_y
03001001113535 53RD AVE S 981681353553RDAVE...2 COMMERCIAL SPACES OFFICE/RETAIL ...23892389200220021003Comm
141002001114829 42ND AVE S 981681482942NDAVE...Lake Vista ...46534653198019881002Comm
26600280116031 38TH AVE SW 98126603138THAVE...21 RESIDENTIAL UNITS 2 COML UNIT ...48674867199719971000YComm
3952810124015NaN...5 Unit Apartment ...61725536199819981002Comm
46600470116016 38TH AVE SW 98126601638THAVE...PACIFIC PLACE SHOPPING MALL & PKG GAR. ...7799693397841999200010017YYComm
\n", + "

5 rows × 79 columns

\n", + "
" + ], + "text/plain": [ + " Major_x Minor_x BldgNbr_x NbrLivingUnits Address_x \\\n", + "0 300 100 1 1 13535 53RD AVE S 98168 \n", + "1 4100 200 1 1 14829 42ND AVE S 98168 \n", + "2 6600 280 1 1 6031 38TH AVE SW 98126 \n", + "3 952810 1240 1 5 \n", + "4 6600 470 1 1 6016 38TH AVE SW 98126 \n", + "\n", + " BuildingNumber_x Fraction_x DirectionPrefix_x StreetName_x \\\n", + "0 13535 53RD \n", + "1 14829 42ND \n", + "2 6031 38TH \n", + "3 NaN \n", + "4 6016 38TH \n", + "\n", + " StreetType_x ... \\\n", + "0 AVE ... \n", + "1 AVE ... \n", + "2 AVE ... \n", + "3 ... \n", + "4 AVE ... \n", + "\n", + " BldgDescr BldgGrossSqFt \\\n", + "0 2 COMMERCIAL SPACES OFFICE/RETAIL ... 2389 \n", + "1 Lake Vista ... 4653 \n", + "2 21 RESIDENTIAL UNITS 2 COML UNIT ... 4867 \n", + "3 5 Unit Apartment ... 6172 \n", + "4 PACIFIC PLACE SHOPPING MALL & PKG GAR. ... 779969 \n", + "\n", + " BldgNetSqFt YrBuilt_y EffYr PcntComplete_y HeatingSystem Sprinklers \\\n", + "0 2389 2002 2002 100 3 \n", + "1 4653 1980 1988 100 2 \n", + "2 4867 1997 1997 100 0 \n", + "3 5536 1998 1998 100 2 \n", + "4 339784 1999 2000 100 17 Y \n", + "\n", + " Elevators Comm_or_Res_y \n", + "0 Comm \n", + "1 Comm \n", + "2 Y Comm \n", + "3 Comm \n", + "4 Y Comm \n", + "\n", + "[5 rows x 79 columns]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "comm_and_res.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(comm_and_res)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "comm_and_res_ids = comm_and_res['MergeID'].tolist()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sale_comm_res = pd.merge(first_merge, RESBUILD, how='left', on='MergeID')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ExciseTaxNbrMajor_xMinor_xDocumentDateSalePriceRecordingNbrVolumePagePlatNbrPlatType...FpFreestandingFpAdditionalYrBuilt_yYrRenovatedPcntComplete_yObsolescencePcntNetConditionConditionAddnlCostComm_or_Res_y
02642952720319052011/20/201369995020131126001594...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
11381073154580122006/16/1994125000199406211626089011154580P...0.00.01985.00.00.00.00.03.00.0Res
22496482356730004506/09/201154220020110617001045...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
31970507252505920606/25/200344300020030702002332...0.00.02001.00.00.00.00.03.00.0Res
41701215235930007207/08/199922500019990730000822...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 103 columns

\n", + "
" + ], + "text/plain": [ + " ExciseTaxNbr Major_x Minor_x DocumentDate SalePrice RecordingNbr \\\n", + "0 2642952 720319 0520 11/20/2013 699950 20131126001594 \n", + "1 1381073 154580 1220 06/16/1994 125000 199406211626 \n", + "2 2496482 356730 0045 06/09/2011 542200 20110617001045 \n", + "3 1970507 252505 9206 06/25/2003 443000 20030702002332 \n", + "4 1701215 235930 0072 07/08/1999 225000 19990730000822 \n", + "\n", + " Volume Page PlatNbr PlatType ... FpFreestanding FpAdditional \\\n", + "0 ... NaN NaN \n", + "1 089 011 154580 P ... 0.0 0.0 \n", + "2 ... NaN NaN \n", + "3 ... 0.0 0.0 \n", + "4 ... NaN NaN \n", + "\n", + " YrBuilt_y YrRenovated PcntComplete_y Obsolescence PcntNetCondition \\\n", + "0 NaN NaN NaN NaN NaN \n", + "1 1985.0 0.0 0.0 0.0 0.0 \n", + "2 NaN NaN NaN NaN NaN \n", + "3 2001.0 0.0 0.0 0.0 0.0 \n", + "4 NaN NaN NaN NaN NaN \n", + "\n", + " Condition AddnlCost Comm_or_Res_y \n", + "0 NaN NaN NaN \n", + "1 3.0 0.0 Res \n", + "2 NaN NaN NaN \n", + "3 3.0 0.0 Res \n", + "4 NaN NaN NaN \n", + "\n", + "[5 rows x 103 columns]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sale_comm_res.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1928494 1928494 1928494\n" + ] + } + ], + "source": [ + "print len(RPSALE), len(first_merge), len(sale_comm_res)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ExciseTaxNbrMajor_xMinor_xDocumentDateSalePriceRecordingNbrVolumePagePlatNbrPlatType...FpFreestandingFpAdditionalYrBuilt_yYrRenovatedPcntComplete_yObsolescencePcntNetConditionConditionAddnlCostComm_or_Res_y
1039212858041952810124004/07/20172000020170411000680...0.00.01996.00.00.00.00.03.00.0Res
7844152206600952810124005/11/2006020060515000683...0.00.01996.00.00.00.00.03.00.0Res
\n", + "

2 rows × 103 columns

\n", + "
" + ], + "text/plain": [ + " ExciseTaxNbr Major_x Minor_x DocumentDate SalePrice RecordingNbr \\\n", + "103921 2858041 952810 1240 04/07/2017 20000 20170411000680 \n", + "784415 2206600 952810 1240 05/11/2006 0 20060515000683 \n", + "\n", + " Volume Page PlatNbr PlatType ... FpFreestanding FpAdditional \\\n", + "103921 ... 0.0 0.0 \n", + "784415 ... 0.0 0.0 \n", + "\n", + " YrBuilt_y YrRenovated PcntComplete_y Obsolescence PcntNetCondition \\\n", + "103921 1996.0 0.0 0.0 0.0 0.0 \n", + "784415 1996.0 0.0 0.0 0.0 0.0 \n", + "\n", + " Condition AddnlCost Comm_or_Res_y \n", + "103921 3.0 0.0 Res \n", + "784415 3.0 0.0 Res \n", + "\n", + "[2 rows x 103 columns]" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sale_comm_res[sale_comm_res['MergeID'].isin(comm_and_res_ids)]" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ExciseTaxNbrMajor_xMinor_xDocumentDateSalePriceRecordingNbrVolumePagePlatNbrPlatType...FpFreestandingFpAdditionalYrBuilt_yYrRenovatedPcntComplete_yObsolescencePcntNetConditionConditionAddnlCostComm_or_Res_y
81307121440070020005/05/19930199305112239062076440070P...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
102826129445872026010/03/2016020161004000511...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
202860712408330415003/15/2017020170426000922...0.00.01906.00.00.00.00.04.00.0Res
212644191312107903612/05/2013020131206000531...0.00.01994.00.00.00.00.03.00.0Res
241729614172204915712/21/1999019991229001498...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 103 columns

\n", + "
" + ], + "text/plain": [ + " ExciseTaxNbr Major_x Minor_x DocumentDate SalePrice RecordingNbr \\\n", + "8 1307121 440070 0200 05/05/1993 0 199305112239 \n", + "10 2826129 445872 0260 10/03/2016 0 20161004000511 \n", + "20 2860712 408330 4150 03/15/2017 0 20170426000922 \n", + "21 2644191 312107 9036 12/05/2013 0 20131206000531 \n", + "24 1729614 172204 9157 12/21/1999 0 19991229001498 \n", + "\n", + " Volume Page PlatNbr PlatType ... FpFreestanding FpAdditional \\\n", + "8 062 076 440070 P ... NaN NaN \n", + "10 ... NaN NaN \n", + "20 ... 0.0 0.0 \n", + "21 ... 0.0 0.0 \n", + "24 ... NaN NaN \n", + "\n", + " YrBuilt_y YrRenovated PcntComplete_y Obsolescence PcntNetCondition \\\n", + "8 NaN NaN NaN NaN NaN \n", + "10 NaN NaN NaN NaN NaN \n", + "20 1906.0 0.0 0.0 0.0 0.0 \n", + "21 1994.0 0.0 0.0 0.0 0.0 \n", + "24 NaN NaN NaN NaN NaN \n", + "\n", + " Condition AddnlCost Comm_or_Res_y \n", + "8 NaN NaN NaN \n", + "10 NaN NaN NaN \n", + "20 4.0 0.0 Res \n", + "21 3.0 0.0 Res \n", + "24 NaN NaN NaN \n", + "\n", + "[5 rows x 103 columns]" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sale_comm_res[sale_comm_res['SalePrice'] == 0].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ExciseTaxNbr',\n", + " 'Major_x',\n", + " 'Minor_x',\n", + " 'DocumentDate',\n", + " 'SalePrice',\n", + " 'RecordingNbr',\n", + " 'Volume',\n", + " 'Page',\n", + " 'PlatNbr',\n", + " 'PlatType',\n", + " 'PlatLot',\n", + " 'PlatBlock',\n", + " 'SellerName',\n", + " 'BuyerName',\n", + " 'PropertyType',\n", + " 'PrincipalUse',\n", + " 'SaleInstrument',\n", + " 'AFForestLand',\n", + " 'AFCurrentUseLand',\n", + " 'AFNonProfitUse',\n", + " 'AFHistoricProperty',\n", + " 'SaleReason',\n", + " 'PropertyClass',\n", + " 'SaleWarning',\n", + " 'MergeID',\n", + " 'Major_y',\n", + " 'Minor_y',\n", + " 'BldgNbr_x',\n", + " 'NbrBldgs',\n", + " 'Address_x',\n", + " 'BuildingNumber_x',\n", + " 'Fraction_x',\n", + " 'DirectionPrefix_x',\n", + " 'StreetName_x',\n", + " 'StreetType_x',\n", + " 'DirectionSuffix_x',\n", + " 'ZipCode_x',\n", + " 'NbrStories',\n", + " 'PredominantUse',\n", + " 'Shape',\n", + " 'ConstrClass',\n", + " 'BldgQuality',\n", + " 'BldgDescr',\n", + " 'BldgGrossSqFt',\n", + " 'BldgNetSqFt',\n", + " 'YrBuilt_x',\n", + " 'EffYr',\n", + " 'PcntComplete_x',\n", + " 'HeatingSystem',\n", + " 'Sprinklers',\n", + " 'Elevators',\n", + " 'Comm_or_Res_x',\n", + " 'Major',\n", + " 'Minor',\n", + " 'BldgNbr_y',\n", + " 'NbrLivingUnits',\n", + " 'Address_y',\n", + " 'BuildingNumber_y',\n", + " 'Fraction_y',\n", + " 'DirectionPrefix_y',\n", + " 'StreetName_y',\n", + " 'StreetType_y',\n", + " 'DirectionSuffix_y',\n", + " 'ZipCode_y',\n", + " 'Stories',\n", + " 'BldgGrade',\n", + " 'BldgGradeVar',\n", + " 'SqFt1stFloor',\n", + " 'SqFtHalfFloor',\n", + " 'SqFt2ndFloor',\n", + " 'SqFtUpperFloor',\n", + " 'SqFtUnfinFull',\n", + " 'SqFtUnfinHalf',\n", + " 'SqFtTotLiving',\n", + " 'SqFtTotBasement',\n", + " 'SqFtFinBasement',\n", + " 'FinBasementGrade',\n", + " 'SqFtGarageBasement',\n", + " 'SqFtGarageAttached',\n", + " 'DaylightBasement',\n", + " 'SqFtOpenPorch',\n", + " 'SqFtEnclosedPorch',\n", + " 'SqFtDeck',\n", + " 'HeatSystem',\n", + " 'HeatSource',\n", + " 'BrickStone',\n", + " 'ViewUtilization',\n", + " 'Bedrooms',\n", + " 'BathHalfCount',\n", + " 'Bath3qtrCount',\n", + " 'BathFullCount',\n", + " 'FpSingleStory',\n", + " 'FpMultiStory',\n", + " 'FpFreestanding',\n", + " 'FpAdditional',\n", + " 'YrBuilt_y',\n", + " 'YrRenovated',\n", + " 'PcntComplete_y',\n", + " 'Obsolescence',\n", + " 'PcntNetCondition',\n", + " 'Condition',\n", + " 'AddnlCost',\n", + " 'Comm_or_Res_y']" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(sale_comm_res)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sale_comm_res['Comm_or_Res'] = sale_comm_res['Comm_or_Res_x'] + sale_comm_res['Comm_or_Res_y']" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1928494 501840 32481\n" + ] + } + ], + "source": [ + "print len(sale_comm_res), len(RESBUILD), len(COMBUILD)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MergeIDComm_or_ResComm_or_Res_xComm_or_Res_y
07203190520NaNNaNNaN
11545801220NaNNaNRes
23567300045NaNNaNNaN
32525059206NaNNaNRes
42359300072NaNNaNNaN
58946770240NaNNaNNaN
69825700015NaNNaNNaN
72470200060NaNNaNNaN
84400700200NaNNaNNaN
96441800110NaNNaNNaN
104458720260NaNNaNNaN
119358400210NaNNaNNaN
129358400260NaNNaNNaN
139358400180NaNNaNNaN
149358400300NaNNaNNaN
159358400290NaNNaNNaN
169358400220NaNNaNNaN
179358400280NaNNaNNaN
189358400270NaNNaNNaN
199358400250NaNNaNNaN
204083304150NaNNaNRes
213121079036NaNNaNRes
222722059197NaNNaNRes
232841500010NaNNaNNaN
241722049157NaNNaNNaN
251722049005NaNNaNRes
261923049020NaNCommNaN
278857300120NaNNaNNaN
281657300360NaNNaNNaN
291989201430NaNCommNaN
...............
19284643303800170NaNNaNNaN
19284656743700299NaNNaNNaN
19284661545801860NaNNaNRes
19284673211530280NaNNaNNaN
19284682896400600NaNNaNNaN
19284693530210010NaNNaNNaN
19284706648750220NaNNaNNaN
19284711423600030NaNNaNNaN
19284725050250080NaNNaNNaN
19284732473390160NaNNaNNaN
19284747697910030NaNNaNNaN
19284754092300885NaNNaNNaN
19284767696810060NaNNaNNaN
19284776781200047NaNNaNNaN
19284789262800161NaNNaNNaN
19284798561101030NaNNaNNaN
19284802223089075NaNNaNRes
19284818084900195NaNNaNNaN
19284823352400195NaNNaNNaN
19284839211510400NaNNaNNaN
19284848562740640NaNNaNNaN
19284859297301700NaNNaNRes
19284866131600255NaNNaNNaN
19284870303550320NaNNaNNaN
19284886145601200NaNNaNRes
19284898141401080NaNNaNNaN
19284905437400170NaNNaNNaN
19284913362400025NaNNaNNaN
19284927967200340NaNNaNNaN
19284933205200650NaNNaNNaN
\n", + "

1928494 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " MergeID Comm_or_Res Comm_or_Res_x Comm_or_Res_y\n", + "0 7203190520 NaN NaN NaN\n", + "1 1545801220 NaN NaN Res\n", + "2 3567300045 NaN NaN NaN\n", + "3 2525059206 NaN NaN Res\n", + "4 2359300072 NaN NaN NaN\n", + "5 8946770240 NaN NaN NaN\n", + "6 9825700015 NaN NaN NaN\n", + "7 2470200060 NaN NaN NaN\n", + "8 4400700200 NaN NaN NaN\n", + "9 6441800110 NaN NaN NaN\n", + "10 4458720260 NaN NaN NaN\n", + "11 9358400210 NaN NaN NaN\n", + "12 9358400260 NaN NaN NaN\n", + "13 9358400180 NaN NaN NaN\n", + "14 9358400300 NaN NaN NaN\n", + "15 9358400290 NaN NaN NaN\n", + "16 9358400220 NaN NaN NaN\n", + "17 9358400280 NaN NaN NaN\n", + "18 9358400270 NaN NaN NaN\n", + "19 9358400250 NaN NaN NaN\n", + "20 4083304150 NaN NaN Res\n", + "21 3121079036 NaN NaN Res\n", + "22 2722059197 NaN NaN Res\n", + "23 2841500010 NaN NaN NaN\n", + "24 1722049157 NaN NaN NaN\n", + "25 1722049005 NaN NaN Res\n", + "26 1923049020 NaN Comm NaN\n", + "27 8857300120 NaN NaN NaN\n", + "28 1657300360 NaN NaN NaN\n", + "29 1989201430 NaN Comm NaN\n", + "... ... ... ... ...\n", + "1928464 3303800170 NaN NaN NaN\n", + "1928465 6743700299 NaN NaN NaN\n", + "1928466 1545801860 NaN NaN Res\n", + "1928467 3211530280 NaN NaN NaN\n", + "1928468 2896400600 NaN NaN NaN\n", + "1928469 3530210010 NaN NaN NaN\n", + "1928470 6648750220 NaN NaN NaN\n", + "1928471 1423600030 NaN NaN NaN\n", + "1928472 5050250080 NaN NaN NaN\n", + "1928473 2473390160 NaN NaN NaN\n", + "1928474 7697910030 NaN NaN NaN\n", + "1928475 4092300885 NaN NaN NaN\n", + "1928476 7696810060 NaN NaN NaN\n", + "1928477 6781200047 NaN NaN NaN\n", + "1928478 9262800161 NaN NaN NaN\n", + "1928479 8561101030 NaN NaN NaN\n", + "1928480 2223089075 NaN NaN Res\n", + "1928481 8084900195 NaN NaN NaN\n", + "1928482 3352400195 NaN NaN NaN\n", + "1928483 9211510400 NaN NaN NaN\n", + "1928484 8562740640 NaN NaN NaN\n", + "1928485 9297301700 NaN NaN Res\n", + "1928486 6131600255 NaN NaN NaN\n", + "1928487 0303550320 NaN NaN NaN\n", + "1928488 6145601200 NaN NaN Res\n", + "1928489 8141401080 NaN NaN NaN\n", + "1928490 5437400170 NaN NaN NaN\n", + "1928491 3362400025 NaN NaN NaN\n", + "1928492 7967200340 NaN NaN NaN\n", + "1928493 3205200650 NaN NaN NaN\n", + "\n", + "[1928494 rows x 4 columns]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sale_comm_res[['MergeID','Comm_or_Res','Comm_or_Res_x','Comm_or_Res_y']]" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "sale_res = sale_comm_res[sale_comm_res[\"Comm_or_Res_y\"]=='Res']\n", + "sale_res = sale_res[sale_res[\"SalePrice\"] > 1000]" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "186285" + ] + }, + "execution_count": 75, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(sale_res)" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nz7LfAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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\nRhkAktSo/w989e4Abpz8zgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sale_com = sale_comm_res[sale_comm_res[\"Comm_or_Res_x\"]=='Comm']\n", + "sale_com = sale_com[sale_com[\"SalePrice\"] >10000]\n", + "matplotlib.pyplot.hist(sale_res[\"SalePrice\"], bins = 100, range = (0, 1000000))\n", + "matplotlib.pyplot.show()\n", + "matplotlib.pyplot.hist(sale_com[\"SalePrice\"], bins = 100, range = (0, 10000000))\n", + "matplotlib.pyplot.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [], + "source": [ + "sale_com['DocumentDate'] = pd.to_datetime(sale_com['DocumentDate'])\n", + "sale_res['DocumentDate'] = pd.to_datetime(sale_res['DocumentDate'])" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": {}, + "outputs": [], + "source": [ + "sale_com['year'] = sale_com['DocumentDate'].dt.year\n", + "sale_res['year'] = sale_res['DocumentDate'].dt.year\n", + "sale_com = sale_com[sale_com['year'] >= 1982]\n", + "sale_res = sale_res[sale_res['year'] >= 1982]" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ExciseTaxNbrMajor_xMinor_xDocumentDateSalePriceRecordingNbrVolumePagePlatNbrPlatType...YrBuilt_yYrRenovatedPcntComplete_yObsolescencePcntNetConditionConditionAddnlCostComm_or_Res_yComm_or_Resyear
89162569825261190291998-07-1320000199807161059000000000000...NaNNaNNaNNaNNaNNaNNaNNaNNaN1998
95141579431260490251995-02-06260000199502100116000000000000...NaNNaNNaNNaNNaNNaNNaNNaNNaN1995
324289261795281045302017-09-15201920020170929001867...NaNNaNNaNNaNNaNNaNNaNNaNNaN2017
684135072712250591871993-11-30300000199312292467000000000000...NaNNaNNaNNaNNaNNaNNaNNaNNaN1993
74277703023971015051984-05-25175000198406040077004036239710P...NaNNaNNaNNaNNaNNaNNaNNaNNaN1984
\n", + "

5 rows × 105 columns

\n", + "
" + ], + "text/plain": [ + " ExciseTaxNbr Major_x Minor_x DocumentDate SalePrice RecordingNbr \\\n", + "89 1625698 252611 9029 1998-07-13 20000 199807161059 \n", + "95 1415794 312604 9025 1995-02-06 260000 199502100116 \n", + "324 2892617 952810 4530 2017-09-15 2019200 20170929001867 \n", + "684 1350727 122505 9187 1993-11-30 300000 199312292467 \n", + "742 777030 239710 1505 1984-05-25 175000 198406040077 \n", + "\n", + " Volume Page PlatNbr PlatType ... YrBuilt_y YrRenovated PcntComplete_y \\\n", + "89 000 000 000000 ... NaN NaN NaN \n", + "95 000 000 000000 ... NaN NaN NaN \n", + "324 ... NaN NaN NaN \n", + "684 000 000 000000 ... NaN NaN NaN \n", + "742 004 036 239710 P ... NaN NaN NaN \n", + "\n", + " Obsolescence PcntNetCondition Condition AddnlCost Comm_or_Res_y \\\n", + "89 NaN NaN NaN NaN NaN \n", + "95 NaN NaN NaN NaN NaN \n", + "324 NaN NaN NaN NaN NaN \n", + "684 NaN NaN NaN NaN NaN \n", + "742 NaN NaN NaN NaN NaN \n", + "\n", + " Comm_or_Res year \n", + "89 NaN 1998 \n", + "95 NaN 1995 \n", + "324 NaN 2017 \n", + "684 NaN 1993 \n", + "742 NaN 1984 \n", + "\n", + "[5 rows x 105 columns]" + ] + }, + "execution_count": 156, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sale_com.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [], + "source": [ + "from collections import defaultdict" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "year_avg = defaultdict(list)" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [], + "source": [ + "com_sale_by_year = sale_com.groupby([\"year\"])[\"SalePrice\"].median()\n", + "res_sale_by_year = sale_res.groupby([\"year\"])[\"SalePrice\"].median()" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "year\n", + "1982 191666\n", + "1983 248240\n", + "1984 246000\n", + "1985 189000\n", + "1986 230000\n", + "1987 228470\n", + "1988 220000\n", + "1989 315000\n", + "1990 327500\n", + "1991 411967\n", + "1992 329500\n", + "1993 419990\n", + "1994 386000\n", + "1995 350000\n", + "1996 500000\n", + "1997 610000\n", + "1998 550000\n", + "1999 665000\n", + "2000 689975\n", + "2001 700000\n", + "2002 791512\n", + "2003 660000\n", + "2004 868750\n", + "2005 1000000\n", + "2006 1136000\n", + "2007 1625000\n", + "2008 1397041\n", + "2009 976000\n", + "2010 875000\n", + "2011 905000\n", + "2012 1243875\n", + "2013 1361100\n", + "2014 1400000\n", + "2015 1797400\n", + "2016 1855000\n", + "2017 1910000\n", + "Name: SalePrice, dtype: int64" + ] + }, + "execution_count": 158, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "com_sale_by_year" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "%matplotlib " + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 162, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(com_sale_by_year)\n", + "plt.plot(res_sale_by_year)\n", + "plt.title(\"Median Real Estate Sale Prices in King County\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}