In [1]:
#import needed packages
import pandas as pd 
import numpy as np 
import matplotlib.pyplot as plt 
import seaborn as sns
%matplotlib inline

In [2]:
#import data from URL
cred=pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/credit-screening/crx.data',\
                 header=None, names=['A1','A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12',\
                                     'A13','A14','A15','A16'])

In [3]:
#look at data
cred.info()


<class 'pandas.core.frame.DataFrame'>
Int64Index: 690 entries, 0 to 689
Data columns (total 16 columns):
A1     690 non-null object
A2     690 non-null object
A3     690 non-null float64
A4     690 non-null object
A5     690 non-null object
A6     690 non-null object
A7     690 non-null object
A8     690 non-null float64
A9     690 non-null object
A10    690 non-null object
A11    690 non-null int64
A12    690 non-null object
A13    690 non-null object
A14    690 non-null object
A15    690 non-null int64
A16    690 non-null object
dtypes: float64(2), int64(2), object(12)
memory usage: 91.6+ KB

In [4]:
#check scatter of data
plt.scatter(cred.A3, cred.A8)


Out[4]:
<matplotlib.collections.PathCollection at 0x10a877f90>

In [6]:
cred.A8.hist(by=cred['A16'], sharey=True, sharex=True)


Out[6]:
array([<matplotlib.axes._subplots.AxesSubplot object at 0x10aa2a710>,
       <matplotlib.axes._subplots.AxesSubplot object at 0x10acec6d0>], dtype=object)

In [7]:
cred.A7.value_counts().plot(kind='bar')


Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x10973e050>

In [8]:
approved_by_A4=cred.groupby('A4').A16.agg(['count'])
approved_by_A4


Out[8]:
count
A4
? 6
l 2
u 519
y 163

In [10]:
#observe data
cred.groupby(['A16'])['A4'].value_counts().plot(kind='bar')


Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0x10afb5910>

In [11]:
cred[cred.A14=='?']


Out[11]:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16
71 b 34.83 4.000 u g d bb 12.500 t f 0 t g ? 0 -
202 b 24.83 2.750 u g c v 2.250 t t 6 f g ? 600 +
206 a 71.58 0.000 ? ? ? ? 0.000 f f 0 f p ? 0 +
243 a 18.75 7.500 u g q v 2.710 t t 5 f g ? 26726 +
270 b 37.58 0.000 ? ? ? ? 0.000 f f 0 f p ? 0 +
278 b 24.58 13.500 y p ff ff 0.000 f f 0 f g ? 0 -
330 b 20.42 0.000 ? ? ? ? 0.000 f f 0 f p ? 0 -
406 a 40.33 8.125 y p k v 0.165 f t 2 f g ? 18 -
445 a ? 11.250 u g ff ff 0.000 f f 0 f g ? 5200 -
456 b 34.58 0.000 ? ? ? ? 0.000 f f 0 f p ? 0 -
592 b 23.17 0.000 ? ? ? ? 0.000 f f 0 f p ? 0 +
622 a 25.58 0.000 ? ? ? ? 0.000 f f 0 f p ? 0 +
626 b 22.00 7.835 y p i bb 0.165 f f 0 t g ? 0 -

In [12]:
#impute values for A2: average values
#convert '?' to 0.0
cred.A2.replace('?', 0.0, inplace=True)
cred[cred.A2=='0.0']


Out[12]:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16

In [13]:
#convert string to float
cred.A2=cred.A2.astype(float)
cred.info()


<class 'pandas.core.frame.DataFrame'>
Int64Index: 690 entries, 0 to 689
Data columns (total 16 columns):
A1     690 non-null object
A2     690 non-null float64
A3     690 non-null float64
A4     690 non-null object
A5     690 non-null object
A6     690 non-null object
A7     690 non-null object
A8     690 non-null float64
A9     690 non-null object
A10    690 non-null object
A11    690 non-null int64
A12    690 non-null object
A13    690 non-null object
A14    690 non-null object
A15    690 non-null int64
A16    690 non-null object
dtypes: float64(3), int64(2), object(11)
memory usage: 91.6+ KB

In [14]:
#replace 0.0 with null values
cred.A2.replace(0.0, np.nan, inplace=True)
cred[pd.isnull(cred.A2)]


Out[14]:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16
83 a NaN 3.500 u g d v 3.000 t f 0 t g 00300 0 -
86 b NaN 0.375 u g d v 0.875 t f 0 t s 00928 0 -
92 b NaN 5.000 y p aa v 8.500 t f 0 f g 00000 0 -
97 b NaN 0.500 u g c bb 0.835 t f 0 t s 00320 0 -
254 b NaN 0.625 u g k v 0.250 f f 0 f g 00380 2010 -
286 a NaN 1.500 u g ff ff 0.000 f t 2 t g 00200 105 -
329 b NaN 4.000 y p i v 0.085 f f 0 t g 00411 0 -
445 a NaN 11.250 u g ff ff 0.000 f f 0 f g ? 5200 -
450 b NaN 3.000 y p i bb 7.000 f f 0 f g 00000 1 -
500 b NaN 4.000 u g x v 5.000 t t 3 t g 00290 2279 +
515 b NaN 10.500 u g x v 6.500 t f 0 f g 00000 0 +
608 b NaN 0.040 y p d v 4.250 f f 0 t g 00460 0 -

In [15]:
cred.A2.mean()


Out[15]:
31.568171091445429

In [16]:
#replace A2 null values with mean
cred.A2.fillna(cred.A2.mean(), inplace=True)

In [17]:
#A14 does not look like numeric values so much as possible ID numbers.  If that is the case, it doesn't make much sense
#to impute average numeric values.  
cred.A14.replace('?', np.nan, inplace=True)
cred.A14=cred.A14.astype(float)
cred.info()


<class 'pandas.core.frame.DataFrame'>
Int64Index: 690 entries, 0 to 689
Data columns (total 16 columns):
A1     690 non-null object
A2     690 non-null float64
A3     690 non-null float64
A4     690 non-null object
A5     690 non-null object
A6     690 non-null object
A7     690 non-null object
A8     690 non-null float64
A9     690 non-null object
A10    690 non-null object
A11    690 non-null int64
A12    690 non-null object
A13    690 non-null object
A14    677 non-null float64
A15    690 non-null int64
A16    690 non-null object
dtypes: float64(4), int64(2), object(10)
memory usage: 91.6+ KB

In [18]:
cred.A14.plot()


Out[18]:
<matplotlib.axes._subplots.AxesSubplot at 0x10b0e0810>

In [19]:
#exclude rows with missing A4, A5, A6, and A7 values
cred = cred[cred.A4 !='?']

In [20]:
#impute random choice for A1
#replace A1=? with null values
cred.A1.replace('?', np.nan, inplace=True)
cred[pd.isnull(cred.A1)]


Out[20]:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16
248 NaN 24.50 12.750 u g c bb 4.750 t t 2 f g 73 444 +
327 NaN 40.83 3.500 u g i bb 0.500 f f 0 f s 1160 0 -
346 NaN 32.25 1.500 u g c v 0.250 f f 0 t g 372 122 -
374 NaN 28.17 0.585 u g aa v 0.040 f f 0 f g 260 1004 -
453 NaN 29.75 0.665 u g w v 0.250 f f 0 t g 300 0 -
479 NaN 26.50 2.710 y p ? ? 0.085 f f 0 f s 80 0 -
489 NaN 45.33 1.000 u g q v 0.125 f f 0 t g 263 0 -
520 NaN 20.42 7.500 u g k v 1.500 t t 1 f g 160 234 +
598 NaN 20.08 0.125 u g q v 1.000 f t 1 f g 240 768 +
601 NaN 42.25 1.750 y p ? ? 0.000 f f 0 t g 150 1 -
641 NaN 33.17 2.250 y p cc v 3.500 f f 0 t g 200 141 -
673 NaN 29.50 2.000 y p e h 2.000 f f 0 f g 256 17 -

In [21]:
#impute values for null observations
a1_missing_mask = cred.A1.isnull()
cred[a1_missing_mask]


Out[21]:
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16
248 NaN 24.50 12.750 u g c bb 4.750 t t 2 f g 73 444 +
327 NaN 40.83 3.500 u g i bb 0.500 f f 0 f s 1160 0 -
346 NaN 32.25 1.500 u g c v 0.250 f f 0 t g 372 122 -
374 NaN 28.17 0.585 u g aa v 0.040 f f 0 f g 260 1004 -
453 NaN 29.75 0.665 u g w v 0.250 f f 0 t g 300 0 -
479 NaN 26.50 2.710 y p ? ? 0.085 f f 0 f s 80 0 -
489 NaN 45.33 1.000 u g q v 0.125 f f 0 t g 263 0 -
520 NaN 20.42 7.500 u g k v 1.500 t t 1 f g 160 234 +
598 NaN 20.08 0.125 u g q v 1.000 f t 1 f g 240 768 +
601 NaN 42.25 1.750 y p ? ? 0.000 f f 0 t g 150 1 -
641 NaN 33.17 2.250 y p cc v 3.500 f f 0 t g 200 141 -
673 NaN 29.50 2.000 y p e h 2.000 f f 0 f g 256 17 -

In [22]:
cred.loc[cred.A1.isnull(), 'A1'] = np.random.choice(cred.A1, 12)

In [23]:
cred.A1.values


Out[23]:
array(['b', 'a', 'a', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b', 'a',
       'b', 'a', 'b', 'b', 'a', 'b', 'a', 'b', 'b', 'a', 'a', 'a', 'a',
       'a', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'b', 'a', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'a', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b',
       'b', 'a', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b', 'a',
       'b', 'b', 'b', 'a', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'a', 'b',
       'b', 'b', 'b', 'b', 'a', 'b', 'b', 'a', 'a', 'b', 'b', 'b', 'b',
       'b', 'b', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'a', 'b',
       'b', 'b', 'a', 'b', 'b', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'a',
       'b', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'a', 'a', 'b',
       'b', 'b', 'b', 'b', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'a',
       'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'a', 'b',
       'b', 'a', 'b', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b', 'b', 'a',
       'a', 'a', 'a', 'b', 'b', 'b', 'a', 'a', 'b', 'b', 'b', 'b', 'b',
       'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'a', 'b', 'a', 'b', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b',
       'a', 'a', 'a', 'b', 'b', 'a', 'b', 'b', 'b', 'a', 'b', 'b', 'a',
       'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'a',
       'a', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b',
       'a', 'a', 'a', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'b',
       'b', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'a', 'b',
       'b', 'a', 'b', 'a', 'b', 'b', 'a', 'a', 'b', 'b', 'b', 'b', 'a',
       'b', 'b', 'a', 'a', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'a', 'a',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'b', 'a', 'b',
       'a', 'b', 'b', 'a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b', 'a',
       'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'a', 'b', 'b', 'b',
       'b', 'a', 'b', 'a', 'b', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'a',
       'b', 'a', 'b', 'b', 'b', 'a', 'b', 'b', 'a', 'b', 'b', 'b', 'b',
       'b', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b',
       'b', 'b', 'a', 'b', 'a', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'a',
       'a', 'a', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'a', 'b', 'b', 'b',
       'a', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b', 'b',
       'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'a',
       'a', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b',
       'b', 'a', 'b', 'b', 'a', 'a', 'a', 'b', 'a', 'b', 'b', 'a', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'a', 'b', 'b',
       'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'a', 'a', 'b', 'a', 'b',
       'b', 'b', 'b', 'b', 'a', 'b', 'a', 'b', 'a', 'a', 'a', 'b', 'b',
       'a', 'a', 'b', 'b', 'b', 'a', 'b', 'a', 'b', 'b', 'a', 'b', 'a',
       'a', 'b', 'b', 'a', 'a', 'b', 'a', 'a', 'b', 'b', 'b', 'a', 'a',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b',
       'b', 'b', 'b', 'b', 'a', 'b', 'b', 'a', 'b', 'a', 'a', 'b', 'b',
       'b', 'b', 'a', 'b', 'a', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b', 'b', 'b', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'a', 'a', 'b', 'b', 'a', 'b', 'b',
       'b', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b',
       'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'a',
       'a', 'a', 'a', 'b', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'a', 'b',
       'a', 'b', 'b', 'a', 'b', 'b', 'a', 'b', 'a', 'a', 'b', 'a', 'a',
       'b', 'a', 'a', 'a', 'b', 'b', 'a', 'b', 'b', 'b', 'a', 'a', 'b',
       'b', 'b', 'b', 'a', 'b', 'a', 'a', 'a', 'b', 'a', 'a', 'b', 'b',
       'b', 'b', 'b', 'b', 'a', 'a', 'b', 'b'], dtype=object)
#Logistic Regression

In [24]:
X_data = cred[['A2','A3','A4','A5','A6','A7','A8','A9','A10','A11','A12',\
                                     'A13','A14','A15','A1']]

In [25]:
X_data.info()


<class 'pandas.core.frame.DataFrame'>
Int64Index: 684 entries, 0 to 689
Data columns (total 15 columns):
A2     684 non-null float64
A3     684 non-null float64
A4     684 non-null object
A5     684 non-null object
A6     684 non-null object
A7     684 non-null object
A8     684 non-null float64
A9     684 non-null object
A10    684 non-null object
A11    684 non-null int64
A12    684 non-null object
A13    684 non-null object
A14    677 non-null float64
A15    684 non-null int64
A1     684 non-null object
dtypes: float64(4), int64(2), object(9)
memory usage: 85.5+ KB

In [26]:
X_data = pd.get_dummies(X_data)

In [27]:
y_data = cred[['A16']]

In [28]:
y_data


Out[28]:
A16
0 +
1 +
2 +
3 +
4 +
5 +
6 +
7 +
8 +
9 +
10 +
11 +
12 +
13 +
14 +
15 +
16 +
17 +
18 +
19 +
20 +
21 +
22 +
23 +
24 +
25 +
26 +
27 +
28 +
29 +
... ...
660 -
661 -
662 -
663 -
664 -
665 -
666 -
667 -
668 -
669 -
670 -
671 -
672 -
673 -
674 -
675 -
676 -
677 -
678 -
679 -
680 -
681 -
682 -
683 -
684 -
685 -
686 -
687 -
688 -
689 -

684 rows × 1 columns


In [29]:
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LogisticRegression

In [30]:
X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, random_state=12, test_size=0.2)

In [31]:
clf = LogisticRegression()

In [32]:
y_train=np.ravel(y_train)

In [33]:
clf.fit(X_train, y_train)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-33-48a2aac41443> in <module>()
----> 1 clf.fit(X_train, y_train)

/Users/danielallgeier/anaconda/lib/python2.7/site-packages/sklearn/svm/base.pyc in fit(self, X, y)
    677                              " one.")
    678 
--> 679         X = atleast2d_or_csr(X, dtype=np.float64, order="C")
    680 
    681         self.class_weight_ = compute_class_weight(self.class_weight,

/Users/danielallgeier/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.pyc in atleast2d_or_csr(X, dtype, order, copy, force_all_finite)
    163     return _atleast2d_or_sparse(X, dtype, order, copy, sp.csr_matrix,
    164                                 "tocsr", sp.isspmatrix_csr,
--> 165                                 force_all_finite)
    166 
    167 

/Users/danielallgeier/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.pyc in _atleast2d_or_sparse(X, dtype, order, copy, sparse_class, convmethod, check_same_type, force_all_finite)
    140     else:
    141         X = array2d(X, dtype=dtype, order=order, copy=copy,
--> 142                     force_all_finite=force_all_finite)
    143     return X
    144 

/Users/danielallgeier/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.pyc in array2d(X, dtype, order, copy, force_all_finite)
    120     X_2d = np.asarray(np.atleast_2d(X), dtype=dtype, order=order)
    121     if force_all_finite:
--> 122         _assert_all_finite(X_2d)
    123     if X is X_2d and copy:
    124         X_2d = safe_copy(X_2d)

/Users/danielallgeier/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.pyc in _assert_all_finite(X)
     41             and not np.isfinite(X).all()):
     42         raise ValueError("Input contains NaN, infinity"
---> 43                          " or a value too large for %r." % X.dtype)
     44 
     45 

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

In [129]:
clf.score(X_test, y_test)


Out[129]:
0.86131386861313863
#SVM

In [122]:
from sklearn.svm import LinearSVC

In [123]:
#initialize C=1e-3
est= LinearSVC(C=4.64e-3)

In [124]:
est.fit(X_train, y_train)


Out[124]:
LinearSVC(C=0.00464, class_weight=None, dual=True, fit_intercept=True,
     intercept_scaling=1, loss='l2', multi_class='ovr', penalty='l2',
     random_state=None, tol=0.0001, verbose=0)

In [125]:
est.score(X_test, y_test)


Out[125]:
0.83211678832116787

In [108]:
from sklearn.grid_search import GridSearchCV

In [109]:
d={}
d['C']=np.logspace(-3, 3, 10)
d
#traverses the logspace of 10^-3 to 10^3 for 10 values


Out[109]:
{'C': array([  1.00000000e-03,   4.64158883e-03,   2.15443469e-02,
          1.00000000e-01,   4.64158883e-01,   2.15443469e+00,
          1.00000000e+01,   4.64158883e+01,   2.15443469e+02,
          1.00000000e+03])}

In [110]:
gs= GridSearchCV(LinearSVC(), d)

In [111]:
gs.fit(X_train, y_train)
#fits values of C using our dictionary parameter


Out[111]:
GridSearchCV(cv=None,
       estimator=LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True,
     intercept_scaling=1, loss='l2', multi_class='ovr', penalty='l2',
     random_state=None, tol=0.0001, verbose=0),
       fit_params={}, iid=True, loss_func=None, n_jobs=1,
       param_grid={'C': array([  1.00000e-03,   4.64159e-03,   2.15443e-02,   1.00000e-01,
         4.64159e-01,   2.15443e+00,   1.00000e+01,   4.64159e+01,
         2.15443e+02,   1.00000e+03])},
       pre_dispatch='2*n_jobs', refit=True, score_func=None, scoring=None,
       verbose=0)

In [112]:
#find the best parameter
gs.best_params_, gs.best_score_


Out[112]:
({'C': 0.0046415888336127772}, 0.84826325411334547)
Confusion Matrix

In [113]:
#Confusion Matrix
from sklearn.metrics import confusion_matrix, classification_report

In [114]:
y_pred = clf.predict(X_test)

In [115]:
# Confusion Matrix for Type 1 and Type 2 Error
#a and d are the correct predictions, b and c are incorrect predictions
confusion_matrix(y_test, y_pred)


Out[115]:
array([[51,  8],
       [11, 67]])

In [116]:
# Examine Precision and Recall
print classification_report(y_test, y_pred)


             precision    recall  f1-score   support

          +       0.82      0.86      0.84        59
          -       0.89      0.86      0.88        78

avg / total       0.86      0.86      0.86       137


In [117]:
# examine the coefficients and significance of Variables
pd.DataFrame(zip(X_data.columns, np.transpose(clf.coef_)))


Out[117]:
0 1
0 A2 [0.0150744279478]
1 A3 [0.0016942926819]
2 A8 [-0.0974029449517]
3 A11 [-0.108922358405]
4 A15 [-0.000486604063634]
5 A4_l [-0.517841781245]
6 A4_u [0.16385786763]
7 A4_y [0.480871443674]
8 A5_g [0.16385786763]
9 A5_gg [-0.517841781245]
10 A5_p [0.480871443674]
11 A6_? [0.439883244977]
12 A6_aa [0.381730168583]
13 A6_c [-0.0394058537519]
14 A6_cc [-0.469143898849]
15 A6_d [0.806687546733]
16 A6_e [-0.224601393159]
17 A6_ff [0.845429908251]
18 A6_i [0.348583187069]
19 A6_j [0.366162541518]
20 A6_k [0.0713997670217]
21 A6_m [-0.0573671502626]
22 A6_q [-0.404400380504]
23 A6_r [-0.00896083119211]
24 A6_w [-0.48891879855]
25 A6_x [-1.44019052783]
26 A7_? [0.439883244977]
27 A7_bb [0.174366162242]
28 A7_dd [-0.0640283800956]
29 A7_ff [0.297523257064]
... ... ...
188 A14_00455 [-0.0212867395138]
189 A14_00460 [0.104538252419]
190 A14_00465 [0.0671650237337]
191 A14_00470 [-0.0713471055503]
192 A14_00480 [0.0377458462181]
193 A14_00487 [-0.16593023219]
194 A14_00491 [-0.267155072612]
195 A14_00500 [-0.856741018441]
196 A14_00510 [-0.116495579437]
197 A14_00515 [0.0]
198 A14_00519 [-0.014267421699]
199 A14_00520 [-0.0270930232267]
200 A14_00523 [0.459526760006]
201 A14_00550 [0.0]
202 A14_00560 [-0.382930835601]
203 A14_00583 [-0.0260452865932]
204 A14_00600 [0.0]
205 A14_00640 [0.116804741738]
206 A14_00680 [0.0]
207 A14_00711 [-0.599259996514]
208 A14_00720 [0.0628433573896]
209 A14_00760 [0.671513703041]
210 A14_00840 [-0.144389416088]
211 A14_00928 [0.307807690087]
212 A14_00980 [0.71491929575]
213 A14_01160 [0.0209150603453]
214 A14_02000 [0.0430429192188]
215 A14_? [0.0653349310692]
216 A1_a [0.0677193899333]
217 A1_b [0.0591681401253]

218 rows × 2 columns


In [ ]: