In [1]:
from __future__ import print_function
import thinkstats2
import nsfg
Read the file 2002FemResp.dat.gz:
In [2]:
# From nsfg.py
dct_file='2002FemResp.dct'
dat_file='2002FemResp.dat.gz'
dct_resp = thinkstats2.ReadStataDct(dct_file)
df_resp = dct_resp.ReadFixedWidth(dat_file, compression='gzip')
In [3]:
df_resp
Out[3]:
caseid
rscrinf
rdormres
rostscrn
rscreenhisp
rscreenrace
age_a
age_r
cmbirth
agescrn
...
pubassis_i
basewgt
adj_mod_basewgt
finalwgt
secu_r
sest
cmintvw
cmlstyr
screentime
intvlngth
0
2298
1
5
5
1
5
27
27
902
27
...
0
3247.916977
5123.759559
5556.717241
2
18
1234
1222
18:26:36
110.492667
1
5012
1
5
1
5
5
42
42
718
42
...
0
2335.279149
2846.799490
4744.191350
2
18
1233
1221
16:30:59
64.294000
2
11586
1
5
1
5
5
43
43
708
43
...
0
2335.279149
2846.799490
4744.191350
2
18
1234
1222
18:19:09
75.149167
3
6794
5
5
4
1
5
15
15
1042
15
...
0
3783.152221
5071.464231
5923.977368
2
18
1234
1222
15:54:43
28.642833
4
616
1
5
4
1
5
20
20
991
20
...
0
5341.329968
6437.335772
7229.128072
2
18
1233
1221
14:19:44
69.502667
5
845
1
5
4
1
5
42
42
727
42
...
0
2335.279149
3725.796795
4705.681352
2
18
1234
1222
17:10:13
95.488000
6
10333
5
5
3
1
5
17
17
1029
17
...
0
2335.279149
2687.399758
3139.151658
2
18
1236
1224
14:14:38
61.204333
7
855
5
5
4
5
5
22
22
965
22
...
0
4670.558298
7122.614751
10019.382170
2
18
1235
1223
14:42:52
59.756333
8
8656
5
5
4
1
5
38
38
780
38
...
0
5198.652195
6027.568848
6520.021223
2
18
1237
1225
15:32:34
56.978833
9
3566
5
5
4
5
5
21
21
974
21
...
0
2764.142038
3240.986558
4559.095792
2
18
1231
1219
16:22:25
104.744667
10
5917
1
5
3
1
5
44
43
714
43
...
0
2418.624283
2762.143030
3488.586646
2
18
1233
1221
15:38:06
96.850167
11
9200
5
5
3
1
5
26
26
923
26
...
0
2418.624283
2754.293339
2987.031126
2
18
1237
1225
14:12:31
61.060667
12
6320
5
5
5
5
1
23
23
952
23
...
0
5497.225851
6448.332868
7241.477811
1
18
1236
1224
14:27:20
69.906500
13
11700
1
5
4
1
5
34
34
822
34
...
0
3362.448309
3677.062170
4666.559600
1
18
1236
1224
11:35:31
77.493333
14
7354
1
5
4
1
5
28
28
896
28
...
0
2417.628123
2790.899197
3026.730179
1
18
1235
1223
14:40:18
79.018500
15
3697
5
5
4
5
5
28
28
896
28
...
0
9670.512492
18559.585881
31215.367494
1
18
1236
1224
11:59:26
45.963500
16
4881
1
5
5
1
5
23
23
948
23
...
0
3292.089359
3935.302679
4419.344908
1
18
1234
1222
20:37:54
110.416833
17
5862
1
5
4
1
5
33
33
831
33
...
0
3056.771190
3456.489520
4386.630850
1
18
1234
1222
16:42:13
107.819667
18
8542
5
5
5
5
5
16
16
1036
16
...
0
5900.163872
6697.056170
7822.831313
1
18
1237
1225
13:04:36
72.481500
19
2054
1
5
4
5
1
24
24
939
24
...
0
2417.628123
2570.384230
2886.541491
1
18
1236
1224
13:58:43
87.417500
20
3719
5
5
2
5
5
22
22
972
22
...
1
4168.324350
4879.253694
5479.401898
1
18
1238
1226
12:50:26
53.782000
21
11740
1
5
5
1
5
32
32
843
32
...
0
2417.628123
2790.899197
3541.930171
1
18
1234
1222
14:23:08
92.950500
22
11343
1
5
5
1
5
41
41
741
41
...
0
2417.628123
4394.216361
5549.895265
1
18
1237
1225
20:29:06
70.791667
23
7075
1
5
4
1
5
37
37
782
37
...
0
4308.038516
5562.306199
6016.746616
2
18
1232
1220
16:30:34
80.659000
24
5422
1
5
2
1
5
38
38
773
38
...
0
3363.768618
3948.605534
4271.206606
1
18
1234
1222
17:07:52
45.171500
25
2178
5
5
3
1
5
29
29
877
29
...
0
3363.768618
5306.521605
5754.922681
1
18
1234
1222
18:28:12
77.489833
26
8358
5
5
4
5
5
21
21
977
21
...
0
2418.624283
2688.131135
3018.771264
2
18
1237
1225
16:10:17
28.934833
27
5083
1
5
4
1
5
37
37
789
37
...
0
2418.624283
3119.659072
3374.535218
2
18
1236
1224
15:14:10
58.307000
28
1545
5
5
4
1
5
39
39
762
39
...
0
8034.280664
8972.807739
9705.886131
2
18
1237
1225
14:09:31
53.124833
29
5656
5
5
3
5
5
26
26
921
26
...
0
4170.041867
6582.846660
7139.097203
2
18
1238
1226
11:20:54
61.501000
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
7613
4640
5
5
6
5
5
18
18
1016
18
...
0
2273.045919
5800.771072
10202.976239
1
76
1234
1222
12:01:09
84.903833
7614
3998
5
5
2
5
5
24
24
935
24
...
0
3544.869231
4031.967457
5671.768622
1
76
1228
1216
17:11:53
106.922500
7615
2432
5
5
5
5
5
15
15
1048
15
...
0
7576.875171
8452.387480
14866.904339
2
76
1234
1222
16:41:31
40.803333
7616
5438
1
5
3
5
5
30
30
862
30
...
0
2273.062551
2559.633775
4440.964600
2
76
1229
1217
12:50:02
86.785000
7617
9643
1
5
2
5
5
24
24
929
24
...
0
2597.785773
2969.368501
4177.010670
2
76
1229
1217
12:26:15
89.036000
7618
3030
1
5
1
5
5
34
34
811
34
...
0
2273.062551
2525.629369
4381.966956
2
76
1229
1217
14:23:39
80.175667
7619
11585
1
5
4
5
5
34
34
814
34
...
0
1720.605492
2260.899193
3922.660100
1
76
1228
1216
15:59:28
113.677500
7620
6677
1
5
4
1
5
26
26
909
26
...
0
3613.271533
4035.558807
4376.563526
1
76
1227
1215
16:35:57
110.918333
7621
10744
5
5
8
5
1
22
22
968
22
...
0
3082.751506
3278.300013
4611.584628
1
76
1234
1222
14:08:25
95.713167
7622
8403
5
5
4
5
5
19
19
995
19
...
0
2408.847688
2563.254954
4508.509139
1
76
1228
1216
17:36:32
62.217000
7623
7574
5
5
4
5
5
19
19
997
19
...
0
2272.098197
2482.173894
4365.895661
2
76
1228
1216
16:09:34
96.809833
7624
8000
1
5
5
5
5
37
37
780
37
...
0
4544.196393
4924.699453
8987.084031
2
76
1227
1215
16:40:18
140.088333
7625
6288
5
1
3
5
2
20
20
986
20
...
0
2272.098197
2585.825443
3637.480651
2
76
1227
1215
17:40:15
93.622333
7626
5856
5
5
6
5
3
23
23
958
23
...
0
12456.163382
31787.898176
44716.036364
1
76
1238
1226
16:04:09
69.623500
7627
8794
1
5
3
5
5
23
23
945
23
...
0
6818.699775
7950.887074
11184.512847
1
76
1228
1216
18:23:51
77.508000
7628
6365
5
5
3
5
2
17
17
1028
17
...
0
2272.899925
3456.977988
6080.478584
1
76
1235
1223
17:15:36
46.016667
7629
3537
1
5
3
5
2
36
36
797
36
...
0
3918.792974
5258.971089
9597.096340
1
76
1239
1227
15:19:09
85.378000
7630
1515
1
5
1
5
5
44
44
688
44
...
0
2272.899925
2680.745920
4467.463075
1
76
1228
1216
16:23:34
147.769667
7631
9174
1
5
3
5
3
32
32
834
32
...
0
2272.899925
2608.931475
4526.496109
1
76
1228
1216
17:30:08
171.005000
7632
4213
1
5
3
5
2
40
40
748
40
...
0
2272.948899
2659.474205
4432.013762
2
76
1229
1217
09:47:43
99.248667
7633
6804
5
5
3
5
2
35
35
805
35
...
0
3247.069856
3814.222882
6960.575338
2
76
1229
1217
14:20:39
103.929167
7634
1282
1
5
4
5
3
35
35
798
35
...
0
2068.394620
2222.154405
4055.209574
1
76
1228
1216
16:31:47
105.509000
7635
2954
1
5
4
5
3
30
30
862
30
...
0
2068.394620
2356.019463
4087.693768
1
76
1228
1216
19:40:51
85.290167
7636
4964
1
5
3
5
3
41
41
727
41
...
0
2068.394620
2222.154405
3703.220316
1
76
1227
1215
12:38:19
306.238000
7637
143
1
5
1
5
2
35
35
808
35
...
0
2273.211779
2463.724427
4496.050707
2
76
1230
1218
17:45:36
83.798833
7638
11018
1
5
2
5
3
34
34
811
34
...
0
3247.445399
3784.333145
6565.818007
2
76
1228
1216
15:57:38
82.907333
7639
6075
5
5
3
5
3
17
17
1014
17
...
0
2273.211779
2497.234491
4392.385746
2
76
1228
1216
18:23:53
54.044833
7640
5649
1
5
2
5
5
29
29
873
29
...
0
3247.445399
3569.313710
6003.228729
2
76
1228
1216
18:42:41
68.168000
7641
501
5
5
3
5
2
16
16
1034
16
...
0
5304.160818
5954.644352
10473.623950
2
76
1228
1216
16:02:45
32.717333
7642
10252
1
5
2
5
2
28
28
889
28
...
0
3247.445399
3476.637428
5847.356491
2
76
1230
1218
12:45:19
74.061500
7643 rows × 3087 columns
Print the value counts for pregnum:
In [4]:
df_resp.pregnum.value_counts().sort_index()
Out[4]:
0 2610
1 1267
2 1432
3 1110
4 611
5 305
6 150
7 80
8 40
9 21
10 9
11 3
12 2
14 2
19 1
dtype: int64
Compare PREGNUM in the codebook.
Print the counts for 7 or more pregnancies:
In [5]:
len(df_resp[df_resp.pregnum>=7])
Out[5]:
158
Cross-validate the respondant and pregnancy files.
Read the file 2002FemPreg.dat.gz:
In [6]:
df_preg = nsfg.ReadFemPreg()
In [7]:
df_preg
Out[7]:
caseid
pregordr
howpreg_n
howpreg_p
moscurrp
nowprgdk
pregend1
pregend2
nbrnaliv
multbrth
...
laborfor_i
religion_i
metro_i
basewgt
adj_mod_basewgt
finalwgt
secu_p
sest
cmintvw
totalwgt_lb
0
1
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3410.389399
3869.349602
6448.271112
2
9
NaN
8.8125
1
1
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3410.389399
3869.349602
6448.271112
2
9
NaN
7.8750
2
2
1
NaN
NaN
NaN
NaN
5
NaN
3
5
...
0
0
0
7226.301740
8567.549110
12999.542264
2
12
NaN
9.1250
3
2
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
7226.301740
8567.549110
12999.542264
2
12
NaN
7.0000
4
2
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
7226.301740
8567.549110
12999.542264
2
12
NaN
6.1875
5
6
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
4870.926435
5325.196999
8874.440799
1
23
NaN
8.5625
6
6
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
4870.926435
5325.196999
8874.440799
1
23
NaN
9.5625
7
6
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
4870.926435
5325.196999
8874.440799
1
23
NaN
8.3750
8
7
1
NaN
NaN
NaN
NaN
5
NaN
1
NaN
...
0
0
0
3409.579565
3787.539000
6911.879921
2
14
NaN
7.5625
9
7
2
NaN
NaN
NaN
NaN
5
NaN
1
NaN
...
0
0
0
3409.579565
3787.539000
6911.879921
2
14
NaN
6.6250
10
12
1
NaN
NaN
NaN
NaN
5
NaN
1
NaN
...
0
0
0
3612.781968
4146.013572
6909.331618
1
31
NaN
7.8125
11
14
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2418.069494
2810.302771
3039.904507
2
56
NaN
7.0000
12
14
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2418.069494
2810.302771
3039.904507
2
56
NaN
4.0000
13
14
3
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
2418.069494
2810.302771
3039.904507
2
56
NaN
NaN
14
15
1
NaN
NaN
NaN
NaN
1
NaN
NaN
NaN
...
0
0
0
1667.816099
3200.862017
5553.495599
1
33
NaN
NaN
15
15
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
1667.816099
3200.862017
5553.495599
1
33
NaN
7.6875
16
15
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
1667.816099
3200.862017
5553.495599
1
33
NaN
7.5000
17
18
1
NaN
NaN
NaN
NaN
5
NaN
1
NaN
...
0
0
0
2957.257457
3404.403067
4153.371741
2
14
NaN
6.3125
18
18
2
NaN
NaN
NaN
NaN
1
NaN
NaN
NaN
...
0
0
0
2957.257457
3404.403067
4153.371741
2
14
NaN
NaN
19
21
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3408.342437
3965.763949
7237.122630
1
48
NaN
8.7500
20
21
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3408.342437
3965.763949
7237.122630
1
48
NaN
8.1875
21
23
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
6210.373020
8120.841310
13533.382043
2
64
NaN
5.5625
22
23
2
NaN
NaN
NaN
NaN
1
NaN
NaN
NaN
...
0
0
0
6210.373020
8120.841310
13533.382043
2
64
NaN
NaN
23
24
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3409.573258
4068.628645
7424.840414
1
27
NaN
6.7500
24
24
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3409.573258
4068.628645
7424.840414
1
27
NaN
7.3750
25
24
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3409.573258
4068.628645
7424.840414
1
27
NaN
6.8125
26
28
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3407.794208
3808.343516
6949.846082
2
57
NaN
8.1250
27
31
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3405.679025
4272.084519
5211.943113
1
2
NaN
7.1250
28
31
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3405.679025
4272.084519
5211.943113
1
2
NaN
6.0625
29
31
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3405.679025
4272.084519
5211.943113
1
2
NaN
7.4375
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
13563
12547
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3453.545517
6628.022524
11499.619080
1
52
NaN
7.6875
13564
12547
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3453.545517
6628.022524
11499.619080
1
52
NaN
7.6250
13565
12550
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3080.452699
3745.326058
5268.550165
1
79
NaN
8.1250
13566
12551
1
NaN
NaN
NaN
NaN
5
NaN
1
NaN
...
0
0
0
2418.538866
3653.453268
3951.940400
2
75
NaN
7.5000
13567
12554
1
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
1914.676604
2177.957240
2764.045534
2
75
NaN
NaN
13568
12554
2
NaN
NaN
NaN
NaN
4
NaN
NaN
NaN
...
0
0
0
1914.676604
2177.957240
2764.045534
2
75
NaN
NaN
13569
12556
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2474.619764
3250.573384
3965.699528
1
44
NaN
5.8125
13570
12556
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2474.619764
3250.573384
3965.699528
1
44
NaN
6.6875
13571
12556
3
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2474.619764
3250.573384
3965.699528
1
44
NaN
6.0000
13572
12556
4
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2474.619764
3250.573384
3965.699528
1
44
NaN
5.8125
13573
12561
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2418.089703
2698.650781
4497.301527
1
10
NaN
6.5625
13574
12561
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2418.089703
2698.650781
4497.301527
1
10
NaN
6.1250
13575
12564
1
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
1820.850938
2129.214067
2768.191208
2
44
NaN
NaN
13576
12565
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
3195.641221
3834.241709
6652.409365
1
78
NaN
6.4375
13577
12565
2
35
1
8
NaN
NaN
NaN
NaN
NaN
...
0
0
0
3195.641221
3834.241709
6652.409365
1
78
NaN
NaN
13578
12566
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2080.317155
2422.820274
2627.548587
2
2
NaN
6.0000
13579
12566
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2080.317155
2422.820274
2627.548587
2
2
NaN
7.0000
13580
12568
1
NaN
NaN
NaN
NaN
1
NaN
NaN
NaN
...
0
0
0
2734.687353
4258.980140
7772.212858
2
28
NaN
NaN
13581
12568
2
NaN
NaN
NaN
NaN
5
NaN
1
NaN
...
0
0
0
2734.687353
4258.980140
7772.212858
2
28
NaN
6.3750
13582
12568
3
NaN
NaN
NaN
NaN
4
NaN
NaN
NaN
...
0
0
0
2734.687353
4258.980140
7772.212858
2
28
NaN
NaN
13583
12569
1
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
2580.967613
2925.167116
5075.164946
2
61
NaN
NaN
13584
12569
2
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
2580.967613
2925.167116
5075.164946
2
61
NaN
6.3750
13585
12570
1
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
5181.311509
6205.829154
11325.017623
2
40
NaN
NaN
13586
12570
2
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
5181.311509
6205.829154
11325.017623
2
40
NaN
NaN
13587
12570
3
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
5181.311509
6205.829154
11325.017623
2
40
NaN
NaN
13588
12571
1
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
4670.540953
5795.692880
6269.200989
1
78
NaN
6.1875
13589
12571
2
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
4670.540953
5795.692880
6269.200989
1
78
NaN
NaN
13590
12571
3
NaN
NaN
NaN
NaN
3
NaN
NaN
NaN
...
0
0
0
4670.540953
5795.692880
6269.200989
1
78
NaN
NaN
13591
12571
4
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
4670.540953
5795.692880
6269.200989
1
78
NaN
7.5000
13592
12571
5
NaN
NaN
NaN
NaN
6
NaN
1
NaN
...
0
0
0
4670.540953
5795.692880
6269.200989
1
78
NaN
7.5000
13593 rows × 244 columns
Use nsfg.MakePregMap to make a dictionary that maps from each caseid to a list of indices in the pregnancy DataFrame:
In [8]:
dct_preg = nsfg.MakePregMap(df_preg)
For example, the indices of pregnancies that the person with caseid==12571 corresponds to:
In [9]:
dct_preg[12571]
Out[9]:
[13588, 13589, 13590, 13591, 13592]
In [10]:
df_resp[['caseid', 'pregnum']]
Out[10]:
caseid
pregnum
0
2298
4
1
5012
1
2
11586
1
3
6794
0
4
616
0
5
845
8
6
10333
0
7
855
0
8
8656
3
9
3566
0
10
5917
2
11
9200
1
12
6320
2
13
11700
2
14
7354
7
15
3697
0
16
4881
3
17
5862
4
18
8542
2
19
2054
3
20
3719
1
21
11740
5
22
11343
3
23
7075
3
24
5422
2
25
2178
2
26
8358
0
27
5083
2
28
1545
2
29
5656
2
...
...
...
7613
4640
0
7614
3998
0
7615
2432
0
7616
5438
2
7617
9643
1
7618
3030
0
7619
11585
2
7620
6677
1
7621
10744
0
7622
8403
0
7623
7574
0
7624
8000
3
7625
6288
0
7626
5856
0
7627
8794
0
7628
6365
0
7629
3537
2
7630
1515
3
7631
9174
4
7632
4213
2
7633
6804
1
7634
1282
2
7635
2954
1
7636
4964
6
7637
143
2
7638
11018
1
7639
6075
0
7640
5649
0
7641
501
0
7642
10252
0
7643 rows × 2 columns
Validates the files:
In [11]:
error_count = 0
for index, (caseid, pregnum) in df_resp[['caseid', 'pregnum']].iterrows():
if len(dct_preg[caseid]) != pregnum:
print('Error: caseid = {0}'.format(caseid))
error_count += 1
print('Number of errors = {0}'.format(error_count))
Number of errors = 0
In [12]:
import pandas
pandas.__version__
Out[12]:
'0.16.1'
In [12]:
Content source: OyamaZemi/ThinkStats2Notebooks
Similar notebooks: