In [1]:
import numpy as np
import pandas as pd
In [2]:
import sys
sys.path.insert(0, '/Users/wbcha/Desktop/project/Imputer.py/src/imputer/')
In [3]:
from imputer import Imputer
Load data
In [4]:
data = pd.read_csv("/Users/wbcha/Downloads/train", header=None)
data.head(2)
Out[4]:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
0
12.414
92.0
20.0
NaN
65.0
14.0
68.0
101.0
59.0
692.01
NaN
NaN
NaN
0
1
NaN
88.0
NaN
NaN
61.0
NaN
49.0
101.0
59.0
0.00
0.0
4.138
98.0
0
In [5]:
impute = Imputer()
Impute first column
In [6]:
imputed_column_0 = impute.knn(data, 0, k=10)
Impute second column
In [7]:
imputed_column_01 = impute.knn(imputed_column_0, 1, k=10)
Impute a categorical column
In [9]:
impute_column_8 = impute.knn(X=data,column=8,k=10,is_categorical=True)
In [12]:
cols=['age','work_class','education','num_edu_years','marital_status','occupation',
'relationship','race','sex','income_from_invest','losses_from_invest',
'working_hour_week','native_country','label']
data = pd.read_csv("/Users/wbcha/Downloads/train",names=cols,header=None)
data.head(2)
Out[12]:
age
work_class
education
num_edu_years
marital_status
occupation
relationship
race
sex
income_from_invest
losses_from_invest
working_hour_week
native_country
label
0
12.414
92.0
20.0
NaN
65.0
14.0
68.0
101.0
59.0
692.01
NaN
NaN
NaN
0
1
NaN
88.0
NaN
NaN
61.0
NaN
49.0
101.0
59.0
0.00
0.0
4.138
98.0
0
In [14]:
impute_column_0 = impute.knn(data,'age')
In [15]:
impute_column_0
Out[15]:
age
work_class
education
num_edu_years
marital_status
occupation
relationship
race
sex
income_from_invest
losses_from_invest
working_hour_week
native_country
label
0
12.41400
92.0
20.0
NaN
65.0
14.0
68.0
101.0
59.0
692.01
NaN
NaN
NaN
0
1
16.87047
88.0
NaN
NaN
61.0
NaN
49.0
101.0
59.0
0.00
0.00
4.1380
98.0
0
2
12.09600
80.0
42.0
NaN
28.0
44.0
68.0
101.0
NaN
0.00
0.00
12.7320
NaN
0
3
14.32396
80.0
3.0
NaN
NaN
44.0
49.0
NaN
59.0
NaN
0.00
12.7320
98.0
0
4
8.91270
80.0
NaN
4.1380
61.0
82.0
103.0
21.0
NaN
NaN
0.00
12.7320
27.0
0
5
11.77700
NaN
63.0
4.4563
NaN
NaN
103.0
101.0
37.0
0.00
0.00
12.7320
98.0
0
6
15.59700
80.0
8.0
1.5915
NaN
NaN
68.0
21.0
37.0
0.00
0.00
NaN
54.0
0
7
7.32110
80.0
20.0
4.1380
65.0
14.0
73.0
101.0
NaN
0.00
0.00
9.5493
98.0
0
8
10.18600
80.0
18.0
3.8197
65.0
NaN
68.0
21.0
59.0
0.00
0.00
15.9150
98.0
0
9
10.82300
80.0
7.0
1.2732
61.0
NaN
49.0
15.0
NaN
0.00
0.00
14.3240
64.0
0
10
7.95770
88.0
42.0
2.8648
65.0
NaN
73.0
101.0
NaN
0.00
0.00
11.1410
98.0
0
11
10.18600
80.0
NaN
NaN
65.0
58.0
99.0
NaN
NaN
0.00
0.00
12.7320
98.0
0
12
12.09600
NaN
3.0
2.2282
61.0
NaN
NaN
101.0
59.0
0.00
0.00
15.9150
98.0
0
13
17.18900
NaN
42.0
2.8648
89.0
71.0
99.0
21.0
37.0
NaN
0.00
6.3662
NaN
0
14
11.14100
36.0
8.0
1.5915
61.0
35.0
49.0
NaN
59.0
0.00
0.00
12.7320
98.0
0
15
13.68700
80.0
3.0
NaN
61.0
96.0
49.0
101.0
59.0
0.00
649.99
12.7320
NaN
0
16
18.78000
NaN
42.0
2.8648
28.0
94.0
99.0
101.0
37.0
0.00
0.00
12.7320
98.0
0
17
9.26277
80.0
NaN
NaN
65.0
26.0
73.0
101.0
59.0
0.00
0.00
12.7320
98.0
0
18
10.50421
NaN
42.0
NaN
28.0
34.0
68.0
101.0
59.0
0.00
0.00
25.4650
98.0
0
19
10.12225
NaN
NaN
2.8648
61.0
26.0
NaN
101.0
59.0
0.00
NaN
12.7320
98.0
0
20
7.32110
NaN
18.0
3.8197
65.0
83.0
68.0
101.0
59.0
0.00
NaN
16.5520
98.0
0
21
11.33182
NaN
90.0
3.1831
NaN
85.0
73.0
21.0
59.0
NaN
NaN
14.0060
98.0
0
22
14.32400
80.0
20.0
NaN
28.0
34.0
73.0
101.0
NaN
0.00
448.18
12.7320
98.0
0
23
9.54930
36.0
NaN
NaN
61.0
NaN
73.0
101.0
59.0
NaN
0.00
12.7320
98.0
0
24
7.00280
NaN
90.0
3.1831
61.0
71.0
49.0
NaN
59.0
0.00
0.00
4.7746
NaN
0
25
15.27900
NaN
3.0
2.2282
65.0
58.0
99.0
101.0
59.0
0.00
0.00
NaN
84.0
0
26
8.37149
80.0
90.0
3.1831
NaN
58.0
73.0
NaN
59.0
0.00
0.00
12.7320
98.0
0
27
6.04790
80.0
42.0
2.8648
60.0
NaN
NaN
101.0
37.0
0.00
NaN
7.9577
98.0
0
28
15.27900
88.0
18.0
3.8197
61.0
82.0
NaN
101.0
59.0
0.00
0.00
12.7320
98.0
0
29
9.07181
80.0
8.0
1.5915
61.0
58.0
NaN
101.0
59.0
0.00
NaN
13.6870
NaN
0
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
10470
12.41400
80.0
NaN
4.1380
61.0
34.0
49.0
101.0
59.0
0.00
0.00
12.7320
NaN
1
10471
15.27900
NaN
42.0
2.8648
61.0
14.0
103.0
101.0
37.0
0.00
0.00
12.7320
NaN
1
10472
16.23400
80.0
90.0
3.1831
28.0
26.0
68.0
101.0
59.0
0.00
0.00
NaN
NaN
1
10473
12.92334
87.0
20.0
4.1380
61.0
NaN
49.0
101.0
59.0
0.00
0.00
15.9150
98.0
1
10474
11.96840
88.0
NaN
4.1380
61.0
34.0
49.0
101.0
59.0
0.00
0.00
12.7320
53.0
1
10475
7.63940
87.0
20.0
4.1380
61.0
34.0
49.0
101.0
59.0
0.00
0.00
NaN
NaN
1
10476
20.05400
87.0
NaN
4.1380
61.0
35.0
49.0
101.0
59.0
NaN
0.00
12.7320
98.0
1
10477
8.91270
57.0
20.0
4.1380
61.0
44.0
49.0
101.0
59.0
NaN
NaN
NaN
NaN
1
10478
16.23400
36.0
NaN
NaN
61.0
82.0
49.0
101.0
59.0
0.00
0.00
15.9150
NaN
1
10479
15.27900
88.0
20.0
4.1380
62.0
85.0
NaN
101.0
59.0
NaN
0.00
NaN
98.0
1
10480
20.69000
80.0
81.0
4.7746
61.0
82.0
49.0
101.0
59.0
6382.40
0.00
19.0990
98.0
1
10481
16.23400
88.0
90.0
3.1831
28.0
26.0
68.0
NaN
59.0
0.00
0.00
2.5465
84.0
1
10482
15.59700
80.0
63.0
4.4563
61.0
34.0
49.0
101.0
59.0
0.00
0.00
14.3240
98.0
1
10483
11.45900
80.0
20.0
4.1380
61.0
85.0
49.0
101.0
NaN
0.00
605.43
14.3240
98.0
1
10484
20.05400
80.0
3.0
2.2282
61.0
NaN
49.0
101.0
59.0
1396.10
0.00
NaN
98.0
1
10485
17.82500
80.0
NaN
3.1831
61.0
35.0
49.0
101.0
59.0
NaN
0.00
19.0990
98.0
1
10486
12.41400
80.0
NaN
4.4563
61.0
34.0
NaN
NaN
59.0
0.00
0.00
15.9150
NaN
1
10487
13.36900
87.0
20.0
4.1380
61.0
82.0
49.0
101.0
NaN
0.00
629.30
12.7320
98.0
1
10488
16.87000
NaN
NaN
2.8648
61.0
NaN
49.0
101.0
59.0
0.00
0.00
NaN
98.0
1
10489
8.59440
80.0
42.0
NaN
61.0
82.0
49.0
NaN
59.0
0.00
NaN
14.3240
NaN
1
10490
15.27900
57.0
63.0
4.4563
61.0
82.0
49.0
101.0
59.0
0.00
0.00
NaN
98.0
1
10491
13.46443
NaN
90.0
3.1831
61.0
26.0
49.0
101.0
NaN
0.00
0.00
12.7320
98.0
1
10492
15.59700
80.0
42.0
2.8648
NaN
34.0
49.0
NaN
59.0
2447.20
0.00
17.5070
NaN
1
10493
11.33185
88.0
6.0
NaN
61.0
34.0
49.0
101.0
NaN
0.00
600.65
21.3270
98.0
1
10494
9.23100
80.0
20.0
4.1380
65.0
34.0
NaN
NaN
37.0
0.00
718.74
NaN
98.0
1
10495
14.92871
80.0
42.0
NaN
61.0
NaN
49.0
101.0
59.0
0.00
0.00
14.3240
98.0
1
10496
11.14100
NaN
90.0
3.1831
61.0
NaN
103.0
101.0
37.0
2447.20
0.00
6.3662
98.0
1
10497
11.77700
NaN
42.0
2.8648
61.0
26.0
49.0
101.0
59.0
0.00
0.00
12.7320
NaN
1
10498
8.27610
80.0
20.0
4.1380
NaN
NaN
NaN
NaN
NaN
0.00
NaN
12.7320
NaN
1
10499
12.12756
80.0
20.0
NaN
61.0
34.0
49.0
NaN
59.0
0.00
0.00
15.9150
98.0
1
10500 rows × 14 columns
In [ ]:
Content source: robinsonkwame/Imputer.py
Similar notebooks: