Using Fastprogress

Shows the usage of the fastprogress library

Imports

from fastprogress.fastprogress import master_bar, progress_bar
from time import sleep
import pandas as pd
import aiking.data
from aiking.data.external import *
from aiking.ml.structured import *
import pathlib
from fastcore.all import *
from fastcore.imports import *
import os
import sys
import sklearn
import numpy as np
from sklearn.model_selection import cross_val_score, cross_val_predict, KFold, train_test_split
from sklearn.metrics import ConfusionMatrixDisplay, accuracy_score, plot_confusion_matrix, confusion_matrix
from sklearn.model_selection import cross_val_score, cross_val_predict, TimeSeriesSplit
from IPython.display import display
from sklearn.pipeline import make_pipeline
from sklearn.ensemble import RandomForestRegressor
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
path = untar_data("kaggle_competitions::bluebook-bulldozer-remix"); path
df_train = pd.read_csv(path/"Train/Train.csv", low_memory=False,parse_dates=['saledate'], infer_datetime_format=True); df_train.head()
df_test = pd.read_csv(path/"Valid/Valid.csv", parse_dates=['saledate'], infer_datetime_format=True); df_test.head()
validation_date_start = (df_train[['saledate']].max() - pd.Timedelta(value=120, unit='D')).values[0]
df_model, df_valid = df_train[df_train['saledate'] < validation_date_start], df_train[df_train['saledate']>= validation_date_start]
df_model.head()
SalesID SalePrice MachineID ModelID datasource auctioneerID YearMade MachineHoursCurrentMeter UsageBand saledate ... Undercarriage_Pad_Width Stick_Length Thumb Pattern_Changer Grouser_Type Backhoe_Mounting Blade_Type Travel_Controls Differential_Type Steering_Controls
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 1139253 11000 1057373 17311 121 3.0 2007 722.0 Medium 2009-07-23 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

5 rows × 53 columns

def get_model_pipeline(max_n_cat=0, 
                       cat_dict=None, 
                       scale_dict={'class': StandardScaler},
                       cat_num_dict={'class':NumericalEncoder,'categories':None},
                       cat_dummy_dict={'class':OneHotEncoder,'handle_unknown':'ignore'},
                       imputer_dict={'class':SimpleImputer, 'strategy':'median'},
                      ):
    layer_spec_default = (get_default_feature_def, 
                      {
                          'skip_flds':None, 
                          'ignored_flds':None, 
                          'max_n_cat':max_n_cat, 
                          'na_exclude_cols':[],
                          'scale_var_num':True,
                          'scale_var_cat':False,
                          'scale_dict':scale_dict,
                          'cat_num_dict':cat_num_dict,
                          'cat_dummy_dict':cat_dummy_dict,
                          'imputer_dict':imputer_dict,
                          'include_time_cols':True,
                          'keep_dt_cols':False,
                          'cat_dict':cat_dict
                      }
                     )

    layer_specs = [layer_spec_default]
    proc = Proc(layer_specs=layer_specs); #proc.fit_transform(X)
    model = RandomForestRegressor()
    pipeline = make_pipeline(proc, model); pipeline
    return pipeline
max_n_cat = 0
cat_dict = get_cat_dict(df_train, max_n_cat=max_n_cat)
display_cat(cat_dict)
0 1
0 UsageBand [High, Low, Medium]
1 fiModelDesc [100C, 104, 1066, 1066E, 1080, 1080B, 1088, 1088CK, 1088LT, 1088TTL, 10B, 10C, 10DG, 110, 1105, 110S, 110TLB, 110Z, 110Z-2, 112, 112E, 112F, 115, 1150, 1150B, 1150BLGP, 1150C, 1150D, 1150E, 1150ELT, 1150G, 1150GLGP, 1150GLT, 1150H, 1150HLGP, 1150HLT, 1150HWT, 1150K, 1150KLGPSERIES3, 1150KWT, 1150KXLT, 1150KXLTIII, 115SRDZ, 115Z, 115ZIII, 115ZIV, 115ZIV-2, 115ZV, 116, 1166, 118, 1187C, 1188, 1188LC, 1188P, 118B, 118C, 11B, 11C, 12, 120, 120B, 120C, 120CLC, 120D, 120E, 120G, 120H, 120HNA, 120LC, 120M , 125, 125A, 125B, 125C, 125CKBNA, 1280, 1280B, 1288, 12E, 12F, 12G, 12H, 12HNA, 12JX, 130, 1300, 1300D, 130G, 130LC, 130LX, 1340XL, 135, 135C, 135CRTS, 135H, 135HNA, 135MSR SPIN ACE, 135SR, 135SRLC, ...]
2 fiBaseModel [10, 100, 104, 1066, 1080, 1088, 10DG, 11, 110, 1105, 112, 115, 1150, 116, 1166, 118, 1187, 1188, 12, 120, 125, 1280, 1288, 130, 1300, 1340, 135, 137, 14, 140, 1400, 143, 1450, 15, 150, 1500, 153, 155, 1550, 16, 160, 1600, 163, 165, 1650, 166, 17, 170, 1700, 1737, 1740, 175, 1750, 1760XL, 17ZTS, 18, 1800, 1818, 1825, 1830, 1835, 1838, 1840, 1845, 185, 1850, 190, 1900, 198, 20, 200, 2000, 2022, 2026, 2040, 2042, 2044, 205, 2050, 2054, 2060, 2060XL, 2064, 2066, 2070, 2074, 2076, 208, 2086, 2095, 2099, 21, 210, 2105, 2109, 211, 212, 213, 213LC, 214, ...]
3 fiSecondaryDesc [ MSR SPIN ACE, #NAME?, -2, -3, -5, -5L, -6, -7, 0.7, 1, 2, 3, 5, 7, A, AA, AB, AG, AW, AX, B, B , BEC, BL, BLGP, BLGPPS, BZ, BZD, C, C , CE, CH, CK, CKB, CL, CLR, CM, CR, CS, CX, D, DC, DL, DT, DX, DXT, DZ, E, EG, EL, ESS, EST, EW, EX, F, FR, G, GT, H, H , H90, HAG, HD, HDS, HDSL, HF, HL, HLGP, HLS, HX, HZ, IV, J, JX, K, L, LC, LC7A, LC7LR, LCD, LCH, LCLR, LCM, LD, LE, LGP, LR, LS, LT, LX, M, M , MC, MR, MRX, MSR, MSR SPIN ACE, MT, MU, MXT, ...]
4 fiModelSeries [ III, #NAME?, -1, -1.50E+01, -11, -12, -15, -16, -17, -18, -1B, -1C, -1L, -2, -20, -21, -21A, -2A, -2C, -2E, -2LC, -2N, -3, -3C, -3EO, -3H, -3L, -3LC, -3LK, -3M, -3MC, -3PT, -4, -5, -5A, -5E, -5F, -5H, -5L, -5LC, -6, -6A, -6B, -6C, -6E, -6K, -6LC, -6LK, -7, -7B, -7E, -7K, -8, -8E, 1, 12, 14FT, 15, 16, 17, 18, 1970, 2, 20, 21KomStat, 21KomStatII, 22, 2B, 2T, 3, 3A, 3C, 4, 5, 5N, 6, 6.00E+00, 6F, 6L, 6LE, 6LK, 7, 7.00E+00, 7A, 7L, 8, A, AWS, D, D7, E, EX, Elite, FASTRRACK, G, GALEO, H, II, III, IV, ...]
5 fiModelDescriptor [ 14FT, LGP, SUPER, XLT, XT, ZX, (BLADE RUNNER), 1, 2, 2.00E+00, 2N, 3, 3.00E+00, 3C, 3L, 3NO, 4WD, 4x4x4, 5, 6, 6K, 7, 7.00E+00, 7A, 8, A, AE0, AVANCE, B, BE, C, CK, CR, CRSB, CUSTOM, DA, DELUXE, DHP, DINGO, DLL, DT, DW, E, ESL, G, GALEO, H, H5, HD, HF, HSD, HT, High Lift, HighLift, II, III, IT, IV, K, K3, K5, KA, KBNA, L, LC, LC8, LCH, LCR, LCRTS, LE, LGP, LGPVP, LITRONIC, LK, LL, LM, LN, LR, LRC, LRR, LS, LT, LU, LX, LongReach, M, MC, ME, MH, N, NLC, NSUC, P, PLUS, PRO, RR, RTS, S, SA, SB, ...]
6 ProductSize [Compact, Large, Large / Medium, Medium, Mini, Small]
7 fiProductClassDesc [Backhoe Loader - 0.0 to 14.0 Ft Standard Digging Depth, Backhoe Loader - 14.0 to 15.0 Ft Standard Digging Depth, Backhoe Loader - 15.0 to 16.0 Ft Standard Digging Depth, Backhoe Loader - 16.0 + Ft Standard Digging Depth, Backhoe Loader - Unidentified, Hydraulic Excavator, Track - 0.0 to 2.0 Metric Tons, Hydraulic Excavator, Track - 11.0 to 12.0 Metric Tons, Hydraulic Excavator, Track - 12.0 to 14.0 Metric Tons, Hydraulic Excavator, Track - 14.0 to 16.0 Metric Tons, Hydraulic Excavator, Track - 150.0 to 300.0 Metric Tons, Hydraulic Excavator, Track - 16.0 to 19.0 Metric Tons, Hydraulic Excavator, Track - 19.0 to 21.0 Metric Tons, Hydraulic Excavator, Track - 2.0 to 3.0 Metric Tons, Hydraulic Excavator, Track - 21.0 to 24.0 Metric Tons, Hydraulic Excavator, Track - 24.0 to 28.0 Metric Tons, Hydraulic Excavator, Track - 28.0 to 33.0 Metric Tons, Hydraulic Excavator, Track - 3.0 to 4.0 Metric Tons, Hydraulic Excavator, Track - 300.0 + Metric Tons, Hydraulic Excavator, Track - 33.0 to 40.0 Metric Tons, Hydraulic Excavator, Track - 4.0 to 5.0 Metric Tons, Hydraulic Excavator, Track - 4.0 to 6.0 Metric Tons, Hydraulic Excavator, Track - 40.0 to 50.0 Metric Tons, Hydraulic Excavator, Track - 5.0 to 6.0 Metric Tons, Hydraulic Excavator, Track - 50.0 to 66.0 Metric Tons, Hydraulic Excavator, Track - 6.0 to 8.0 Metric Tons, Hydraulic Excavator, Track - 66.0 to 90.0 Metric Tons, Hydraulic Excavator, Track - 8.0 to 11.0 Metric Tons, Hydraulic Excavator, Track - 90.0 to 150.0 Metric Tons, Hydraulic Excavator, Track - Unidentified, Hydraulic Excavator, Track - Unidentified (Compact Construction), Motorgrader - 130.0 to 145.0 Horsepower, Motorgrader - 145.0 to 170.0 Horsepower, Motorgrader - 170.0 to 200.0 Horsepower, Motorgrader - 200.0 + Horsepower, Motorgrader - 45.0 to 130.0 Horsepower, Motorgrader - Unidentified, Skid Steer Loader - 0.0 to 701.0 Lb Operating Capacity, Skid Steer Loader - 1251.0 to 1351.0 Lb Operating Capacity, Skid Steer Loader - 1351.0 to 1601.0 Lb Operating Capacity, Skid Steer Loader - 1601.0 to 1751.0 Lb Operating Capacity, Skid Steer Loader - 1751.0 to 2201.0 Lb Operating Capacity, Skid Steer Loader - 2201.0 to 2701.0 Lb Operating Capacity, Skid Steer Loader - 2701.0+ Lb Operating Capacity, Skid Steer Loader - 701.0 to 976.0 Lb Operating Capacity, Skid Steer Loader - 976.0 to 1251.0 Lb Operating Capacity, Skid Steer Loader - Unidentified, Track Type Tractor, Dozer - 105.0 to 130.0 Horsepower, Track Type Tractor, Dozer - 130.0 to 160.0 Horsepower, Track Type Tractor, Dozer - 160.0 to 190.0 Horsepower, Track Type Tractor, Dozer - 190.0 to 260.0 Horsepower, Track Type Tractor, Dozer - 20.0 to 75.0 Horsepower, Track Type Tractor, Dozer - 260.0 + Horsepower, Track Type Tractor, Dozer - 75.0 to 85.0 Horsepower, Track Type Tractor, Dozer - 85.0 to 105.0 Horsepower, Track Type Tractor, Dozer - Unidentified, Wheel Loader - 0.0 to 40.0 Horsepower, Wheel Loader - 100.0 to 110.0 Horsepower, Wheel Loader - 1000.0 + Horsepower, Wheel Loader - 110.0 to 120.0 Horsepower, Wheel Loader - 120.0 to 135.0 Horsepower, Wheel Loader - 135.0 to 150.0 Horsepower, Wheel Loader - 150.0 to 175.0 Horsepower, Wheel Loader - 175.0 to 200.0 Horsepower, Wheel Loader - 200.0 to 225.0 Horsepower, Wheel Loader - 225.0 to 250.0 Horsepower, Wheel Loader - 250.0 to 275.0 Horsepower, Wheel Loader - 275.0 to 350.0 Horsepower, Wheel Loader - 350.0 to 500.0 Horsepower, Wheel Loader - 40.0 to 60.0 Horsepower, Wheel Loader - 500.0 to 1000.0 Horsepower, Wheel Loader - 60.0 to 80.0 Horsepower, Wheel Loader - 80.0 to 90.0 Horsepower, Wheel Loader - 90.0 to 100.0 Horsepower, Wheel Loader - Unidentified]
8 state [Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Puerto Rico, Rhode Island, South Carolina, South Dakota, Tennessee, Texas, Unspecified, Utah, Vermont, Virginia, Washington, Washington DC, West Virginia, Wisconsin, Wyoming]
9 ProductGroup [BL, MG, SSL, TEX, TTT, WL]
10 ProductGroupDesc [Backhoe Loaders, Motor Graders, Skid Steer Loaders, Track Excavators, Track Type Tractors, Wheel Loader]
11 Drive_System [All Wheel Drive, Four Wheel Drive, No, Two Wheel Drive]
12 Enclosure [EROPS, EROPS AC, EROPS w AC, NO ROPS, None or Unspecified, OROPS]
13 Forks [None or Unspecified, Yes]
14 Pad_Type [Grouser, None or Unspecified, Reversible, Street]
15 Ride_Control [No, None or Unspecified, Yes]
16 Stick [Extended, Standard]
17 Transmission [AutoShift, Autoshift, Direct Drive, Hydrostatic, None or Unspecified, Powershift, Powershuttle, Standard]
18 Turbocharged [None or Unspecified, Yes]
19 Blade_Extension [None or Unspecified, Yes]
20 Blade_Width [12', 13', 14', 16', <12', None or Unspecified]
21 Enclosure_Type [High Profile, Low Profile, None or Unspecified]
22 Engine_Horsepower [No, Variable]
23 Hydraulics [2 Valve, 3 Valve, 4 Valve, Auxiliary, Base + 1 Function, Base + 2 Function, Base + 3 Function, Base + 4 Function, Base + 5 Function, Base + 6 Function, None or Unspecified, Standard]
24 Pushblock [None or Unspecified, Yes]
25 Ripper [Multi Shank, None or Unspecified, Single Shank, Yes]
26 Scarifier [None or Unspecified, Yes]
27 Tip_Control [None or Unspecified, Sideshift & Tip, Tip]
28 Tire_Size [10 inch, 10", 13", 14", 15.5, 15.5", 17.5, 17.5", 20.5, 20.5", 23.1", 23.5, 23.5", 26.5, 29.5, 7.0", None or Unspecified]
29 Coupler [Hydraulic, Manual, None or Unspecified]
30 Coupler_System [None or Unspecified, Yes]
31 Grouser_Tracks [None or Unspecified, Yes]
32 Hydraulics_Flow [High Flow, None or Unspecified, Standard]
33 Track_Type [Rubber, Steel]
34 Undercarriage_Pad_Width [14 inch, 15 inch, 16 inch, 18 inch, 20 inch, 22 inch, 24 inch, 25 inch, 26 inch, 27 inch, 28 inch, 30 inch, 31 inch, 31.5 inch, 32 inch, 33 inch, 34 inch, 36 inch, None or Unspecified]
35 Stick_Length [10' 10", 10' 2", 10' 6", 11' 0", 11' 10", 12' 10", 12' 4", 12' 8", 13' 10", 13' 7", 13' 9", 14' 1", 15' 4", 15' 9", 19' 8", 24' 3", 6' 3", 7' 10", 8' 10", 8' 2", 8' 4", 8' 6", 9' 10", 9' 2", 9' 5", 9' 6", 9' 7", 9' 8", None or Unspecified]
36 Thumb [Hydraulic, Manual, None or Unspecified]
37 Pattern_Changer [No, None or Unspecified, Yes]
38 Grouser_Type [Double, Single, Triple]
39 Backhoe_Mounting [None or Unspecified, Yes]
40 Blade_Type [Angle, Coal, Landfill, No, None or Unspecified, PAT, Semi U, Straight, U, VPAT]
41 Travel_Controls [1 Speed, 2 Pedal, Differential Steer, Finger Tip, Lever, None or Unspecified, Pedal]
42 Differential_Type [Limited Slip, Locking, No Spin, Standard]
43 Steering_Controls [Command Control, Conventional, Four Wheel Standard, No, Wheel]
# def timeseries_cv(df_model, # Dataset for modelling training + validation
#                   sort_fld, # Field for sorting dataframe required for ordering timeseries split
#                   y_fld, # Field/colname for yaxis
#                   pipeline_callback_dict, #{'func': get_model_pipeline, 'func_kwargs':{'max_n_cat':0, 'cat_dict':None}}
#                   y_mod_func=None, # Function/ transformation applied to target variable 
#                   scorers = {'r2':SCORERS['r2']}, # Scoring dict subset of sklearn scorer
#                   n_train=15000, # max-number of samples in training 
#                   n_test=12000, # max-number of samples in testing
#                   n_splits=10): # number of splits
#     df_model_tscv = df_model.sort_values(by=sort_fld)
#     tscv = TimeSeriesSplit(gap=0, max_train_size=n_train, n_splits=n_splits, test_size=n_test)
#     X_model_tscv = df_model_tscv.drop([y_fld], axis=1)
#     y_model_tscv = y_mod_func(df_model_tscv[y_fld]) if y_mod_func else df_model_tscv[y_fld]
#     set_id = 1
#     score_dfs = []
#     for train_idx, valid_idx in tscv.split(df_model_tscv):
#         print(f"Executing for set : {set_id}")
#         score_df = {}
#         np.random.shuffle(train_idx)
#         X_train_split, y_train_split = X_model_tscv.iloc[train_idx], y_model_tscv.iloc[train_idx]
#         X_valid_split, y_valid_split = X_model_tscv.iloc[valid_idx], y_model_tscv.iloc[valid_idx]
#         pipeline = pipeline_callback_dict['func'](**pipeline_callback_dict['func_kwargs'])
#         pipeline.fit(X_train_split, y_train_split)
#         score_df = get_score(pipeline, X_train_split, y_train_split, X_valid_split, y_valid_split, scorers=scorers)
#         score_df['set'] = set_id
#         score_df['train_start'] = X_train_split[sort_fld].min()
#         score_df['train_end'] = X_train_split[sort_fld].max()
#         score_df['valid_start'] = X_valid_split[sort_fld].min()
#         score_df['valid_end'] = X_valid_split[sort_fld].max()
#         set_id = set_id+1
#         score_dfs.append(score_df)
#     return pd.concat(score_dfs)
# mb = master_bar(range(10))
# for i in mb:
#     for j in progress_bar(range(100), parent=mb):
#         sleep(0.01)
#         mb.child.comment = f'second bar stat'
#     mb.main_bar.comment = f'first bar stat'
#     mb.write(f'Finished loop {i}.')
sort_fld = 'saledate'
y_fld = 'SalePrice'
pipeline_callback_dict={'func': get_model_pipeline, 'func_kwargs':{'max_n_cat':0, 'cat_dict':cat_dict}}
y_mod_func=np.log
scorers = get_scorer_dict()
n_train=15000
n_test=12000
n_splits=10

# df_model_tscv = df_model.sort_values(by=sort_fld)
# tscv = TimeSeriesSplit(gap=0, max_train_size=n_train, n_splits=n_splits, test_size=n_test)
# X_model_tscv = df_model_tscv.drop([y_fld], axis=1)
# y_model_tscv = y_mod_func(df_model_tscv[y_fld]) if y_mod_func else df_model_tscv[y_fld]
# set_id = 1
# score_dfs = []
df_model_tscv = df_model.sort_values(by=sort_fld); df_model_tscv.head()
tscv = TimeSeriesSplit(gap=0, max_train_size=n_train, n_splits=n_splits, test_size=n_test); tscv
X_model_tscv = df_model_tscv.drop([y_fld], axis=1)
y_model_tscv = y_mod_func(df_model_tscv[y_fld]) if y_mod_func else df_model_tscv[y_fld]
set_id = 1
score_dfs = []
# master_bar??
mb =  progress_bar(tscv.split(df_model_tscv), total=n_splits)
set_id = 1
for train_idx, valid_idx in mb:
    print(train_idx, valid_idx)
    sleep(1)
    # mb.update_bar(val=set_id)
    set_id = set_id + 1
100.00% [10/10 00:10<00:00]
[255213 255214 255215 ... 270210 270211 270212] [270213 270214 270215 ... 282210 282211 282212]
[267213 267214 267215 ... 282210 282211 282212] [282213 282214 282215 ... 294210 294211 294212]
[279213 279214 279215 ... 294210 294211 294212] [294213 294214 294215 ... 306210 306211 306212]
[291213 291214 291215 ... 306210 306211 306212] [306213 306214 306215 ... 318210 318211 318212]
[303213 303214 303215 ... 318210 318211 318212] [318213 318214 318215 ... 330210 330211 330212]
[315213 315214 315215 ... 330210 330211 330212] [330213 330214 330215 ... 342210 342211 342212]
[327213 327214 327215 ... 342210 342211 342212] [342213 342214 342215 ... 354210 354211 354212]
[339213 339214 339215 ... 354210 354211 354212] [354213 354214 354215 ... 366210 366211 366212]
[351213 351214 351215 ... 366210 366211 366212] [366213 366214 366215 ... 378210 378211 378212]
[363213 363214 363215 ... 378210 378211 378212] [378213 378214 378215 ... 390210 390211 390212]
# master_bar??
a = display("Test", display_id=True)
'Text Again'
a.update("Not Text")
a.update("Text Again")
df = pd.DataFrame()
dfs = []
a = display(dfs, display_id=True)
for i in range(10):
    df = df_model[:i]
    dfs.append(df)
    a.update(pd.concat(dfs))
    sleep(0.1)
SalesID SalePrice MachineID ModelID datasource auctioneerID YearMade MachineHoursCurrentMeter UsageBand saledate ... Undercarriage_Pad_Width Stick_Length Thumb Pattern_Changer Grouser_Type Backhoe_Mounting Blade_Type Travel_Controls Differential_Type Steering_Controls
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 1139253 11000 1057373 17311 121 3.0 2007 722.0 Medium 2009-07-23 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 1139253 11000 1057373 17311 121 3.0 2007 722.0 Medium 2009-07-23 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 1139255 26500 1001274 4605 121 3.0 2004 508.0 Low 2008-12-18 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 1139253 11000 1057373 17311 121 3.0 2007 722.0 Medium 2009-07-23 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 1139255 26500 1001274 4605 121 3.0 2004 508.0 Low 2008-12-18 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 1139256 21000 772701 1937 121 3.0 1993 11540.0 High 2004-08-26 ... None or Unspecified None or Unspecified None or Unspecified None or Unspecified Double NaN NaN NaN NaN NaN
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 1139253 11000 1057373 17311 121 3.0 2007 722.0 Medium 2009-07-23 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 1139255 26500 1001274 4605 121 3.0 2004 508.0 Low 2008-12-18 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 1139256 21000 772701 1937 121 3.0 1993 11540.0 High 2004-08-26 ... None or Unspecified None or Unspecified None or Unspecified None or Unspecified Double NaN NaN NaN NaN NaN
7 1139261 27000 902002 3539 121 3.0 2001 4883.0 High 2005-11-17 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
0 1139246 66000 999089 3157 121 3.0 2004 68.0 Low 2006-11-16 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
1 1139248 57000 117657 77 121 3.0 1996 4640.0 Low 2004-03-26 ... NaN NaN NaN NaN NaN NaN NaN NaN Standard Conventional
2 1139249 10000 434808 7009 121 3.0 2001 2838.0 High 2004-02-26 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 1139251 38500 1026470 332 121 3.0 2001 3486.0 High 2011-05-19 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 1139253 11000 1057373 17311 121 3.0 2007 722.0 Medium 2009-07-23 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 1139255 26500 1001274 4605 121 3.0 2004 508.0 Low 2008-12-18 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 1139256 21000 772701 1937 121 3.0 1993 11540.0 High 2004-08-26 ... None or Unspecified None or Unspecified None or Unspecified None or Unspecified Double NaN NaN NaN NaN NaN
7 1139261 27000 902002 3539 121 3.0 2001 4883.0 High 2005-11-17 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 1139272 21500 1036251 36003 121 3.0 2008 302.0 Low 2009-08-27 ... None or Unspecified None or Unspecified None or Unspecified None or Unspecified Double NaN NaN NaN NaN NaN

45 rows × 53 columns