--

xport module need to be installed.

from __future__ import print_function
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
import os

out_folder = './nhanes_output_data/'
data_folder = './nhanes_input_data/'
diet_files = os.listdir(data_folder)
diet_files[:4]
['2015-2016-food-codes-DRXFCD_I.XPT',
'2015-2016-support-food-codes-DRXFCD_I.XPT']
import xport
#import pandas as pd
f = open(data_folder + 'data_format_DR1IFF_I.txt', 'r')
columns = ''
for line in f:
columns += '"' + line.strip() + '"'+ ','

columns += '\n'
print(columns)
print('Select a health measure/aspect to visualize\n')
# create the interactive interface
def f(measure):
return measure

print('Select a measure:')
measure_file = interactive(f, measure = diet_files);
display(measure_file)
Select a health measure/aspect to visualize

Select a measure:



interactive(children=(Dropdown(description='measure', options=('1999-2000-dietary-interview-individual-foods-D…
data_file = data_folder + measure_file.result
#measure_data = pd.read_excel(data_file)
#measure_data = pd.ExcelFile('health-status.xls')
#excel_file = pd.ExcelFile(data_file)
#measure_data.head()
data_file
'./nhanes_input_data/2015-2016-food-codes-DRXFCD_I.XPT'f = open(data_file, 'rb')
row = xport.Reader(f)
#print(list(row))
print(row.fields)
columns_set = row.fields

columns = ''
for field in columns_set:
columns += '"' + field.strip() + '"'+ ','

columns += '\n'
print(columns)


f.close()
columns
('DRXFDCD', 'DRXFCSD', 'DRXFCLD')
"DRXFDCD","DRXFCSD","DRXFCLD",






'"DRXFDCD","DRXFCSD","DRXFCLD",\n'
out_file = out_folder + measure_file.result + '.csv'
out = open(out_file, 'w')
out.write(columns)


with open(data_file, 'rb') as f:
for row in xport.Reader(f):
#print(type(row))
#print (row)
row_str = ''
for aField in row:
row_str += '"' + str(aField) + '"' + ','
row_str += '\n'
#print (row_str)
out.write(row_str)
#break

out.close()
f.close()
#out_file = out_folder + measure_file.result + '.csv'
#out = open(out_file, 'w')
#out.write(columns)

f = open(data_file, 'rb')
row = xport.Reader(f)
#print(list(row))
print(row.fields)
f.close()
('DRXFDCD', 'DRXFCSD', 'DRXFCLD')f = open(data_file, 'rb')
row = xport.Reader(f)
print(row.fields)
f.close()
('DRXFDCD', 'DRXFCSD', 'DRXFCLD')with open(data_file, 'rb') as f:
columns = xport.to_columns(f)
f.close()
#columns
with open(data_file, 'rb') as f:
columns = xport.to_numpy(f)
f.close()
columns
C:\ProgramData\Anaconda3\lib\site-packages\xport.py:450: FutureWarning: arrays to stack must be passed as a "sequence" type such as list or tuple. Support for non-sequence iterables such as generators is deprecated as of NumPy 1.16 and will raise an error in the future.
return np.vstack(Reader(fp))





array([['11000000.0', 'MILK, HUMAN', 'Milk, human'],
['11100000.0', 'MILK, NFS', 'Milk, NFS'],
['11111000.0', 'MILK, WHOLE', 'Milk, whole'],
...,
['99995130.0', 'WHEAT BREAD AS INGREDIENT IN SANDWICHES',
'Wheat bread as ingredient in sandwiches'],
['99998130.0', 'SAUCE AS INGREDIENT IN HAMBURGERS',
'Sauce as ingredient in hamburgers'],
['99998210.0', 'INDUSTRIAL OIL AS INGREDIENT IN FOOD',
'Industrial oil as ingredient in food']], dtype='<U184')
"""
with open(data_file, 'rb') as f:
df = xport.to_dataframe(f)
f.close()
df
"""
"\nwith open(data_file, 'rb') as f:\n df = xport.to_dataframe(f)\nf.close() \ndf\n"

References

https://pypi.org/project/xport/ Codes in the column names: https://wwwn.cdc.gov/nchs/nhanes/Search/variablelist.aspx?Component=Dietary

--

--

Justetc Social Services (non-profit)
Data Science Project Development

All proceeds from Medium will go to Justetc Social Services ( non-profit). Justetc Social Services provides services in the Training and Education Areas.