In [1]:
import numpy as np
import pandas as pd
import pandas_datareader.data as web#株価など時系列データをwebから取得するパッケージ
from datetime import datetime
In [2]:
ticker = ['AMZN','FB','INTU']
start = '2012-01-01'#datetime(2016,1,1)
end = '2013-12-31'#datetime(2016,12,31)
df = web.DataReader(ticker,'google',start,end)['Close',:,:]
df2 = df.copy()
NaNにする行と列の番号をランダムに生成する
In [20]:
rand_row = np.random.randint(1,len(df),50)
rand_col = np.random.randint(1,len(df.columns),50)
In [21]:
for i,j in zip(rand_row,rand_col):
df.iloc[i,j] = np.nan
In [5]:
df
Out[5]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
56.45
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-25
187.80
NaN
57.52
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
58.47
2012-02-06
183.14
NaN
NaN
2012-02-07
184.19
NaN
57.62
2012-02-08
185.48
NaN
57.56
2012-02-09
184.98
NaN
57.60
2012-02-10
185.54
NaN
56.68
2012-02-13
191.59
NaN
56.59
2012-02-14
191.30
NaN
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
NaN
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
NaN
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
NaN
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
NaN
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
NaN
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
NaN
76.32
502 rows × 3 columns
欠損値を確認
In [6]:
df.isnull()
Out[6]:
AMZN
FB
INTU
Date
2012-01-03
False
True
False
2012-01-04
False
True
False
2012-01-05
False
True
False
2012-01-06
False
True
False
2012-01-09
False
True
False
2012-01-10
False
True
False
2012-01-11
False
True
False
2012-01-12
False
True
False
2012-01-13
False
True
False
2012-01-17
False
True
False
2012-01-18
False
True
False
2012-01-19
False
True
False
2012-01-20
False
True
False
2012-01-23
False
True
False
2012-01-24
False
True
False
2012-01-25
False
True
False
2012-01-26
False
True
False
2012-01-27
False
True
False
2012-01-30
False
True
False
2012-01-31
False
True
False
2012-02-01
False
True
False
2012-02-02
False
True
False
2012-02-03
False
True
False
2012-02-06
False
True
True
2012-02-07
False
True
False
2012-02-08
False
True
False
2012-02-09
False
True
False
2012-02-10
False
True
False
2012-02-13
False
True
False
2012-02-14
False
True
False
...
...
...
...
2013-11-18
False
False
False
2013-11-19
False
False
False
2013-11-20
False
False
True
2013-11-21
False
False
False
2013-11-22
False
True
False
2013-11-25
False
False
False
2013-11-26
False
False
False
2013-11-27
False
False
False
2013-11-29
False
False
False
2013-12-02
False
False
False
2013-12-03
False
False
False
2013-12-04
False
False
True
2013-12-05
False
False
False
2013-12-06
False
False
False
2013-12-09
False
False
False
2013-12-10
False
True
False
2013-12-11
False
False
False
2013-12-12
False
False
False
2013-12-13
False
False
False
2013-12-16
False
False
False
2013-12-17
False
False
False
2013-12-18
False
False
False
2013-12-19
False
False
False
2013-12-20
False
False
False
2013-12-23
False
False
True
2013-12-24
False
False
False
2013-12-26
False
False
False
2013-12-27
False
False
False
2013-12-30
False
False
False
2013-12-31
False
True
False
502 rows × 3 columns
In [7]:
df.notnull()
Out[7]:
AMZN
FB
INTU
Date
2012-01-03
True
False
True
2012-01-04
True
False
True
2012-01-05
True
False
True
2012-01-06
True
False
True
2012-01-09
True
False
True
2012-01-10
True
False
True
2012-01-11
True
False
True
2012-01-12
True
False
True
2012-01-13
True
False
True
2012-01-17
True
False
True
2012-01-18
True
False
True
2012-01-19
True
False
True
2012-01-20
True
False
True
2012-01-23
True
False
True
2012-01-24
True
False
True
2012-01-25
True
False
True
2012-01-26
True
False
True
2012-01-27
True
False
True
2012-01-30
True
False
True
2012-01-31
True
False
True
2012-02-01
True
False
True
2012-02-02
True
False
True
2012-02-03
True
False
True
2012-02-06
True
False
False
2012-02-07
True
False
True
2012-02-08
True
False
True
2012-02-09
True
False
True
2012-02-10
True
False
True
2012-02-13
True
False
True
2012-02-14
True
False
True
...
...
...
...
2013-11-18
True
True
True
2013-11-19
True
True
True
2013-11-20
True
True
False
2013-11-21
True
True
True
2013-11-22
True
False
True
2013-11-25
True
True
True
2013-11-26
True
True
True
2013-11-27
True
True
True
2013-11-29
True
True
True
2013-12-02
True
True
True
2013-12-03
True
True
True
2013-12-04
True
True
False
2013-12-05
True
True
True
2013-12-06
True
True
True
2013-12-09
True
True
True
2013-12-10
True
False
True
2013-12-11
True
True
True
2013-12-12
True
True
True
2013-12-13
True
True
True
2013-12-16
True
True
True
2013-12-17
True
True
True
2013-12-18
True
True
True
2013-12-19
True
True
True
2013-12-20
True
True
True
2013-12-23
True
True
False
2013-12-24
True
True
True
2013-12-26
True
True
True
2013-12-27
True
True
True
2013-12-30
True
True
True
2013-12-31
True
False
True
502 rows × 3 columns
In [8]:
df.count()
Out[8]:
AMZN 502
FB 386
INTU 482
dtype: int64
In [9]:
df.dropna()
Out[9]:
AMZN
FB
INTU
Date
2012-05-17
218.36
38.00
54.41
2012-05-18
213.85
38.23
54.51
2012-05-21
218.11
34.03
55.25
2012-05-22
215.33
31.00
55.99
2012-05-23
217.28
32.00
56.47
2012-05-24
215.24
33.03
56.39
2012-05-25
212.89
31.91
56.45
2012-05-29
214.75
28.84
56.63
2012-05-30
209.23
28.19
56.20
2012-05-31
212.91
29.60
56.23
2012-06-01
208.22
27.72
54.80
2012-06-04
214.57
26.90
54.92
2012-06-05
213.21
25.87
55.66
2012-06-06
217.64
26.81
57.70
2012-06-08
218.48
27.10
57.00
2012-06-11
216.50
27.00
55.43
2012-06-12
216.42
27.40
56.77
2012-06-13
214.73
27.27
56.48
2012-06-14
214.45
28.29
57.37
2012-06-15
218.35
30.01
58.32
2012-06-18
222.66
31.41
58.70
2012-06-20
223.02
31.60
58.83
2012-06-21
220.58
31.84
56.89
2012-06-22
222.16
33.05
57.66
2012-06-25
220.07
32.06
56.35
2012-06-27
225.62
32.23
57.52
2012-06-28
221.31
31.36
57.00
2012-06-29
228.35
31.10
59.35
2012-07-02
229.32
30.77
59.68
2012-07-03
229.53
31.20
60.15
...
...
...
...
2013-11-08
350.31
47.53
72.48
2013-11-11
354.38
46.20
72.28
2013-11-12
349.53
46.60
72.41
2013-11-13
356.22
48.71
72.96
2013-11-14
367.40
48.99
73.16
2013-11-15
369.17
49.01
73.67
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-21
368.92
46.70
73.16
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
370 rows × 3 columns
In [10]:
df.dropna(axis=0)
Out[10]:
AMZN
FB
INTU
Date
2012-05-17
218.36
38.00
54.41
2012-05-18
213.85
38.23
54.51
2012-05-21
218.11
34.03
55.25
2012-05-22
215.33
31.00
55.99
2012-05-23
217.28
32.00
56.47
2012-05-24
215.24
33.03
56.39
2012-05-25
212.89
31.91
56.45
2012-05-29
214.75
28.84
56.63
2012-05-30
209.23
28.19
56.20
2012-05-31
212.91
29.60
56.23
2012-06-01
208.22
27.72
54.80
2012-06-04
214.57
26.90
54.92
2012-06-05
213.21
25.87
55.66
2012-06-06
217.64
26.81
57.70
2012-06-08
218.48
27.10
57.00
2012-06-11
216.50
27.00
55.43
2012-06-12
216.42
27.40
56.77
2012-06-13
214.73
27.27
56.48
2012-06-14
214.45
28.29
57.37
2012-06-15
218.35
30.01
58.32
2012-06-18
222.66
31.41
58.70
2012-06-20
223.02
31.60
58.83
2012-06-21
220.58
31.84
56.89
2012-06-22
222.16
33.05
57.66
2012-06-25
220.07
32.06
56.35
2012-06-27
225.62
32.23
57.52
2012-06-28
221.31
31.36
57.00
2012-06-29
228.35
31.10
59.35
2012-07-02
229.32
30.77
59.68
2012-07-03
229.53
31.20
60.15
...
...
...
...
2013-11-08
350.31
47.53
72.48
2013-11-11
354.38
46.20
72.28
2013-11-12
349.53
46.60
72.41
2013-11-13
356.22
48.71
72.96
2013-11-14
367.40
48.99
73.16
2013-11-15
369.17
49.01
73.67
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-21
368.92
46.70
73.16
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
370 rows × 3 columns
In [11]:
df.dropna(axis=1)
Out[11]:
AMZN
Date
2012-01-03
179.03
2012-01-04
177.51
2012-01-05
177.61
2012-01-06
182.61
2012-01-09
178.56
2012-01-10
179.34
2012-01-11
178.90
2012-01-12
175.93
2012-01-13
178.42
2012-01-17
181.66
2012-01-18
189.44
2012-01-19
194.45
2012-01-20
190.93
2012-01-23
186.09
2012-01-24
187.00
2012-01-25
187.80
2012-01-26
193.32
2012-01-27
195.37
2012-01-30
192.15
2012-01-31
194.44
2012-02-01
179.46
2012-02-02
181.72
2012-02-03
187.68
2012-02-06
183.14
2012-02-07
184.19
2012-02-08
185.48
2012-02-09
184.98
2012-02-10
185.54
2012-02-13
191.59
2012-02-14
191.30
...
...
2013-11-18
366.18
2013-11-19
364.94
2013-11-20
362.57
2013-11-21
368.92
2013-11-22
372.31
2013-11-25
376.64
2013-11-26
381.37
2013-11-27
386.71
2013-11-29
393.62
2013-12-02
392.30
2013-12-03
384.66
2013-12-04
385.96
2013-12-05
384.49
2013-12-06
386.95
2013-12-09
384.89
2013-12-10
387.78
2013-12-11
382.19
2013-12-12
381.25
2013-12-13
384.24
2013-12-16
388.97
2013-12-17
387.65
2013-12-18
395.96
2013-12-19
395.19
2013-12-20
402.20
2013-12-23
402.92
2013-12-24
399.20
2013-12-26
404.39
2013-12-27
398.08
2013-12-30
393.37
2013-12-31
398.79
502 rows × 1 columns
In [12]:
df.dropna(axis=0,how='any')
Out[12]:
AMZN
FB
INTU
Date
2012-05-17
218.36
38.00
54.41
2012-05-18
213.85
38.23
54.51
2012-05-21
218.11
34.03
55.25
2012-05-22
215.33
31.00
55.99
2012-05-23
217.28
32.00
56.47
2012-05-24
215.24
33.03
56.39
2012-05-25
212.89
31.91
56.45
2012-05-29
214.75
28.84
56.63
2012-05-30
209.23
28.19
56.20
2012-05-31
212.91
29.60
56.23
2012-06-01
208.22
27.72
54.80
2012-06-04
214.57
26.90
54.92
2012-06-05
213.21
25.87
55.66
2012-06-06
217.64
26.81
57.70
2012-06-08
218.48
27.10
57.00
2012-06-11
216.50
27.00
55.43
2012-06-12
216.42
27.40
56.77
2012-06-13
214.73
27.27
56.48
2012-06-14
214.45
28.29
57.37
2012-06-15
218.35
30.01
58.32
2012-06-18
222.66
31.41
58.70
2012-06-20
223.02
31.60
58.83
2012-06-21
220.58
31.84
56.89
2012-06-22
222.16
33.05
57.66
2012-06-25
220.07
32.06
56.35
2012-06-27
225.62
32.23
57.52
2012-06-28
221.31
31.36
57.00
2012-06-29
228.35
31.10
59.35
2012-07-02
229.32
30.77
59.68
2012-07-03
229.53
31.20
60.15
...
...
...
...
2013-11-08
350.31
47.53
72.48
2013-11-11
354.38
46.20
72.28
2013-11-12
349.53
46.60
72.41
2013-11-13
356.22
48.71
72.96
2013-11-14
367.40
48.99
73.16
2013-11-15
369.17
49.01
73.67
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-21
368.92
46.70
73.16
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
370 rows × 3 columns
In [13]:
df.dropna(axis=1,how='all')
Out[13]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
56.45
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-25
187.80
NaN
57.52
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
58.47
2012-02-06
183.14
NaN
NaN
2012-02-07
184.19
NaN
57.62
2012-02-08
185.48
NaN
57.56
2012-02-09
184.98
NaN
57.60
2012-02-10
185.54
NaN
56.68
2012-02-13
191.59
NaN
56.59
2012-02-14
191.30
NaN
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
NaN
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
NaN
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
NaN
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
NaN
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
NaN
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
NaN
76.32
502 rows × 3 columns
In [14]:
for i in rand_row:
df.iloc[i] = np.nan
df
Out[14]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
56.45
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-25
NaN
NaN
NaN
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
58.47
2012-02-06
NaN
NaN
NaN
2012-02-07
184.19
NaN
57.62
2012-02-08
185.48
NaN
57.56
2012-02-09
184.98
NaN
57.60
2012-02-10
185.54
NaN
56.68
2012-02-13
191.59
NaN
56.59
2012-02-14
191.30
NaN
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
NaN
NaN
NaN
2013-11-21
368.92
46.70
73.16
2013-11-22
NaN
NaN
NaN
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
NaN
NaN
NaN
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
NaN
NaN
NaN
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
NaN
NaN
NaN
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
NaN
NaN
NaN
502 rows × 3 columns
In [15]:
df.dropna(axis=0,how='all')
Out[15]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
56.45
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
58.47
2012-02-07
184.19
NaN
57.62
2012-02-08
185.48
NaN
57.56
2012-02-09
184.98
NaN
57.60
2012-02-10
185.54
NaN
56.68
2012-02-13
191.59
NaN
56.59
2012-02-14
191.30
NaN
56.77
2012-02-15
184.47
NaN
56.65
2012-02-16
179.93
NaN
58.01
...
...
...
...
2013-11-08
350.31
47.53
72.48
2013-11-11
354.38
46.20
72.28
2013-11-12
349.53
46.60
72.41
2013-11-13
356.22
48.71
72.96
2013-11-14
367.40
48.99
73.16
2013-11-15
369.17
49.01
73.67
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-21
368.92
46.70
73.16
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
455 rows × 3 columns
In [17]:
df.fillna(0)
Out[17]:
AMZN
FB
INTU
Date
2012-01-03
179.03
0.00
52.46
2012-01-04
177.51
0.00
52.30
2012-01-05
177.61
0.00
52.54
2012-01-06
182.61
0.00
53.12
2012-01-09
178.56
0.00
53.18
2012-01-10
179.34
0.00
54.75
2012-01-11
178.90
0.00
55.18
2012-01-12
175.93
0.00
55.28
2012-01-13
178.42
0.00
54.83
2012-01-17
181.66
0.00
55.25
2012-01-18
189.44
0.00
56.45
2012-01-19
194.45
0.00
57.10
2012-01-20
190.93
0.00
57.09
2012-01-23
186.09
0.00
57.41
2012-01-24
187.00
0.00
57.33
2012-01-25
187.80
0.00
57.52
2012-01-26
193.32
0.00
57.49
2012-01-27
195.37
0.00
57.35
2012-01-30
192.15
0.00
56.56
2012-01-31
194.44
0.00
56.44
2012-02-01
179.46
0.00
57.88
2012-02-02
181.72
0.00
57.86
2012-02-03
187.68
0.00
58.47
2012-02-06
183.14
0.00
57.90
2012-02-07
184.19
0.00
57.62
2012-02-08
185.48
0.00
57.56
2012-02-09
184.98
0.00
57.60
2012-02-10
185.54
0.00
56.68
2012-02-13
191.59
0.00
56.59
2012-02-14
191.30
0.00
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [22]:
df.fillna({'FB':0,'INTU':100})
Out[22]:
AMZN
FB
INTU
Date
2012-01-03
179.03
0.00
52.46
2012-01-04
177.51
0.00
52.30
2012-01-05
177.61
0.00
52.54
2012-01-06
182.61
0.00
53.12
2012-01-09
178.56
0.00
53.18
2012-01-10
179.34
0.00
54.75
2012-01-11
178.90
0.00
55.18
2012-01-12
175.93
0.00
55.28
2012-01-13
178.42
0.00
54.83
2012-01-17
181.66
0.00
55.25
2012-01-18
189.44
0.00
100.00
2012-01-19
194.45
0.00
57.10
2012-01-20
190.93
0.00
57.09
2012-01-23
186.09
0.00
57.41
2012-01-24
187.00
0.00
57.33
2012-01-25
187.80
0.00
57.52
2012-01-26
193.32
0.00
57.49
2012-01-27
195.37
0.00
57.35
2012-01-30
192.15
0.00
56.56
2012-01-31
194.44
0.00
56.44
2012-02-01
179.46
0.00
57.88
2012-02-02
181.72
0.00
57.86
2012-02-03
187.68
0.00
100.00
2012-02-06
183.14
0.00
57.90
2012-02-07
184.19
0.00
57.62
2012-02-08
185.48
0.00
57.56
2012-02-09
184.98
0.00
57.60
2012-02-10
185.54
0.00
56.68
2012-02-13
191.59
0.00
56.59
2012-02-14
191.30
0.00
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [23]:
df.fillna(method='ffill')
Out[23]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
55.25
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-25
187.80
NaN
57.52
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
57.86
2012-02-06
183.14
NaN
57.90
2012-02-07
184.19
NaN
57.62
2012-02-08
185.48
NaN
57.56
2012-02-09
184.98
NaN
57.60
2012-02-10
185.54
NaN
56.68
2012-02-13
191.59
NaN
56.59
2012-02-14
191.30
NaN
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [24]:
df.fillna(method='bfill')
Out[24]:
AMZN
FB
INTU
Date
2012-01-03
179.03
38.00
52.46
2012-01-04
177.51
38.00
52.30
2012-01-05
177.61
38.00
52.54
2012-01-06
182.61
38.00
53.12
2012-01-09
178.56
38.00
53.18
2012-01-10
179.34
38.00
54.75
2012-01-11
178.90
38.00
55.18
2012-01-12
175.93
38.00
55.28
2012-01-13
178.42
38.00
54.83
2012-01-17
181.66
38.00
55.25
2012-01-18
189.44
38.00
57.10
2012-01-19
194.45
38.00
57.10
2012-01-20
190.93
38.00
57.09
2012-01-23
186.09
38.00
57.41
2012-01-24
187.00
38.00
57.33
2012-01-25
187.80
38.00
57.52
2012-01-26
193.32
38.00
57.49
2012-01-27
195.37
38.00
57.35
2012-01-30
192.15
38.00
56.56
2012-01-31
194.44
38.00
56.44
2012-02-01
179.46
38.00
57.88
2012-02-02
181.72
38.00
57.86
2012-02-03
187.68
38.00
57.90
2012-02-06
183.14
38.00
57.90
2012-02-07
184.19
38.00
57.62
2012-02-08
185.48
38.00
57.56
2012-02-09
184.98
38.00
57.60
2012-02-10
185.54
38.00
56.68
2012-02-13
191.59
38.00
56.59
2012-02-14
191.30
38.00
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [29]:
df.fillna(method='backfill',limit=70)
Out[29]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
57.10
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-25
187.80
NaN
57.52
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
57.90
2012-02-06
183.14
NaN
57.90
2012-02-07
184.19
38.00
57.62
2012-02-08
185.48
38.00
57.56
2012-02-09
184.98
38.00
57.60
2012-02-10
185.54
38.00
56.68
2012-02-13
191.59
38.00
56.59
2012-02-14
191.30
38.00
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [30]:
df.fillna(method='ffill',axis=1)
Out[30]:
AMZN
FB
INTU
Date
2012-01-03
179.03
179.03
52.46
2012-01-04
177.51
177.51
52.30
2012-01-05
177.61
177.61
52.54
2012-01-06
182.61
182.61
53.12
2012-01-09
178.56
178.56
53.18
2012-01-10
179.34
179.34
54.75
2012-01-11
178.90
178.90
55.18
2012-01-12
175.93
175.93
55.28
2012-01-13
178.42
178.42
54.83
2012-01-17
181.66
181.66
55.25
2012-01-18
189.44
189.44
189.44
2012-01-19
194.45
194.45
57.10
2012-01-20
190.93
190.93
57.09
2012-01-23
186.09
186.09
57.41
2012-01-24
187.00
187.00
57.33
2012-01-25
187.80
187.80
57.52
2012-01-26
193.32
193.32
57.49
2012-01-27
195.37
195.37
57.35
2012-01-30
192.15
192.15
56.56
2012-01-31
194.44
194.44
56.44
2012-02-01
179.46
179.46
57.88
2012-02-02
181.72
181.72
57.86
2012-02-03
187.68
187.68
187.68
2012-02-06
183.14
183.14
57.90
2012-02-07
184.19
184.19
57.62
2012-02-08
185.48
185.48
57.56
2012-02-09
184.98
184.98
57.60
2012-02-10
185.54
185.54
56.68
2012-02-13
191.59
191.59
56.59
2012-02-14
191.30
191.30
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [31]:
df.fillna(method='pad',inplace=True)
In [32]:
df
Out[32]:
AMZN
FB
INTU
Date
2012-01-03
179.03
NaN
52.46
2012-01-04
177.51
NaN
52.30
2012-01-05
177.61
NaN
52.54
2012-01-06
182.61
NaN
53.12
2012-01-09
178.56
NaN
53.18
2012-01-10
179.34
NaN
54.75
2012-01-11
178.90
NaN
55.18
2012-01-12
175.93
NaN
55.28
2012-01-13
178.42
NaN
54.83
2012-01-17
181.66
NaN
55.25
2012-01-18
189.44
NaN
55.25
2012-01-19
194.45
NaN
57.10
2012-01-20
190.93
NaN
57.09
2012-01-23
186.09
NaN
57.41
2012-01-24
187.00
NaN
57.33
2012-01-25
187.80
NaN
57.52
2012-01-26
193.32
NaN
57.49
2012-01-27
195.37
NaN
57.35
2012-01-30
192.15
NaN
56.56
2012-01-31
194.44
NaN
56.44
2012-02-01
179.46
NaN
57.88
2012-02-02
181.72
NaN
57.86
2012-02-03
187.68
NaN
57.86
2012-02-06
183.14
NaN
57.90
2012-02-07
184.19
NaN
57.62
2012-02-08
185.48
NaN
57.56
2012-02-09
184.98
NaN
57.60
2012-02-10
185.54
NaN
56.68
2012-02-13
191.59
NaN
56.59
2012-02-14
191.30
NaN
56.77
...
...
...
...
2013-11-18
366.18
45.83
73.41
2013-11-19
364.94
46.36
73.36
2013-11-20
362.57
46.43
73.14
2013-11-21
368.92
46.70
73.16
2013-11-22
372.31
46.23
72.03
2013-11-25
376.64
44.82
72.73
2013-11-26
381.37
45.89
72.84
2013-11-27
386.71
46.49
73.54
2013-11-29
393.62
47.01
74.23
2013-12-02
392.30
47.06
74.23
2013-12-03
384.66
46.73
74.36
2013-12-04
385.96
48.62
74.34
2013-12-05
384.49
48.34
74.01
2013-12-06
386.95
47.94
74.91
2013-12-09
384.89
48.84
74.40
2013-12-10
387.78
50.24
75.00
2013-12-11
382.19
49.38
74.53
2013-12-12
381.25
51.83
74.23
2013-12-13
384.24
53.32
75.02
2013-12-16
388.97
53.81
74.86
2013-12-17
387.65
54.86
74.69
2013-12-18
395.96
55.57
75.81
2013-12-19
395.19
55.05
75.69
2013-12-20
402.20
55.12
75.28
2013-12-23
402.92
57.77
76.32
2013-12-24
399.20
57.96
76.42
2013-12-26
404.39
57.73
76.35
2013-12-27
398.08
55.44
76.09
2013-12-30
393.37
53.71
76.57
2013-12-31
398.79
54.65
76.32
502 rows × 3 columns
In [ ]: