欢迎访问诺维之舟医学科研平台,我们的课程比丁香园更香!
Language:

NHANES课程

一劳永逸搞定NHANES数据下载-基于python的下载方法

时间:2024-03-05 22:16:16 阅读:114

一劳永逸搞定NHANES数据下载

基于python的下载方法


bilibili:文章对应的讲解视频在此。熊大学习社 https://space.bilibili.com/475774512

Gitee开源:https://gitee.com/shenghuaxiong/ioter

CSDN玩转物联网专栏文章:https://blog.csdn.net/shx13141/category_11669532.html

微信公众号:熊大学习社

幻灯片1

课程资料包括基于python的下载程序代码、自研可直接使用的下载软件、整理好的离线NHANES数据库、讲义。关注vx公众号“熊大学习社”,回复“221119”,可获得资料链接,(资料链接在文章最下方)。谢谢您的支持,我们坚持做好有质量的分享。

1 下载完整的NHANES离线数据库

(1)第一种方式,采用get_data.py,多线程下载。

在此之前,先确认好安装了python和相关库。

  • python 3.7.4,官网下载。

  • 两个库:pandas和BeautifulSoup

在命令行下,逐行运行下面的代码

 # 安装pandas库
 pip install pandas
 # 安装BeautifulSoup库
 pip install BeautifulSoup
 # 查看安装情况
 pip list
  • 运行这条命令

python get_data.py

image-20221119175229683

(2)第二种方式,采用自研程序,main_ui.exe。

设计好界面,pyinstaller -F -i ./logo.ico main_ui.py

image-20221119224644684

image-20221119223620102

程序在课程资料中,可直接使用。下载的结果放在同目录的data文件夹中。

image-20221119223717707

2 下载指定的NHANES数据

采用bootstrap.py即可。

  • 将所需的数据表名和年份信息填入即可。

image-20221118225226637

image-20221118225153621

     # file_list = [
     #     ('1999-2000', 'DEMO'),    ('2001-2002', 'DEMO_B'),  ('2003-2004', 'DEMO_C'),
     #     ('1999-2000', 'DIQ'),     ('2001-2002', 'DIQ_B'),   ('2003-2004', 'DIQ_C'),
     #     ('1999-2000', 'LAB10AM'), ('2001-2002', 'L10AM_B'), ('2003-2004', 'L10AM_C'),
     #     ('1999-2000', 'ALQ'),     ('2001-2002', 'ALQ_B'),   ('2003-2004', 'ALQ_C'),
     #     ('1999-2000', 'SMQ'),     ('2001-2002', 'SMQ_B'),   ('2003-2004', 'SMQ_C'),
     #     ('1999-2000', 'BMX'),     ('2001-2002', 'BMX_B') ,  ('2003-2004', 'BMX_C'),
     #     ('1999-2000', 'BPQ'),     ('2001-2002', 'BPQ_B'),   ('2003-2004', 'BPQ_C'),
     #     ('1999-2000', 'MCQ'),     ('2001-2002', 'MCQ_B'),   ('2003-2004', 'MCQ_C'),
     #     ('1999-2000', 'PAQ'),     ('2001-2002', 'PAQ_B'),   ('2003-2004', 'PAQ_C'),
     #     ('1999-2000', 'LAB13'),   ('2001-2002', 'L13_B'),   ('2003-2004', 'L13_C'),
     # ]
     file_list = [
         ('2009-2010', 'DEMO_F' ), ('2011-2012', 'DEMO_G' ), ('2013-2014', 'DEMO_H' ),
         ('2015-2016', 'DEMO_I' ), ('2017-2018', 'DEMO_J' ),  
         ('2009-2010', 'DIQ_F'  ), ('2011-2012', 'DIQ_G'  ), ('2013-2014', 'DIQ_H'  ),
         ('2015-2016', 'DIQ_I'  ), ('2017-2018', 'DIQ_J'  ),
         ('2009-2010', 'GLU_F'  ), ('2011-2012', 'GLU_G'  ), ('2013-2014', 'GLU_H'  ),
         ('2015-2016', 'GLU_I'  ), ('2017-2018', 'GLU_J'  ),
         ('2009-2010', 'ALQ_F'  ), ('2011-2012', 'ALQ_G'  ), ('2013-2014', 'ALQ_H'  ),
         ('2015-2016', 'ALQ_I'  ), ('2017-2018', 'ALQ_J'  ),
         ('2009-2010', 'SMQ_F'  ), ('2011-2012', 'SMQ_G'  ), ('2013-2014', 'SMQ_H'  ),
         ('2015-2016', 'SMQ_I'  ), ('2017-2018', 'SMQ_J'  ),
         ('2009-2010', 'BMX_F'  ), ('2011-2012', 'BMX_G'  ), ('2013-2014', 'BMX_H'  ),
         ('2015-2016', 'BMX_I'  ), ('2017-2018', 'BMX_J'  ),
         ('2009-2010', 'BPQ_F'  ), ('2011-2012', 'BPQ_G'  ), ('2013-2014', 'BPQ_H'  ),
         ('2015-2016', 'BPQ_I'  ), ('2017-2018', 'BPQ_J'  ),
         ('2009-2010', 'MCQ_F'  ), ('2011-2012', 'MCQ_G'  ), ('2013-2014', 'MCQ_H'  ),
         ('2015-2016', 'MCQ_I'  ), ('2017-2018', 'MCQ_J'  ),
         ('2009-2010', 'PAQ_F'  ), ('2011-2012', 'PAQ_G'  ), ('2013-2014', 'PAQ_H'  ),
         ('2015-2016', 'PAQ_I'  ), ('2017-2018', 'PAQ_J'  ),
         ('2009-2010', 'TCHOL_F'  ), ('2011-2012', 'TCHOL_G'  ), ('2013-2014', 'TCHOL_H'  ),
         ('2015-2016', 'TCHOL_I'  ), ('2017-2018', 'TCHOL_J'  ),
     ]
  • 运行命令,python bootstart.py

3 文件格式转换

raw_to_csv.py

  • 运行命令

python raw_to_csv.py

  • 设置转换的目录即可

     parser.add_argument('-m', '--multithread', action='store_true',\
             help='invoke multiprocessing python to parallelize conversion')
     parser.add_argument('-i', '--input_dir', default='./data/raw_data/',\
             type=str, help='Input directory containing raw .XPT files from\
             NHANES dataset')
     parser.add_argument('-o', '--output_dir', default='./data/csv_data/',\
             type=str, help='Output directory for .XPT data files converted to\
             .CSV files')
     parser.add_argument('-c', '--columns', action='store_true', help='Boolean\
             setting for converting column headers to more verbose option.\
             Requires .JSON file with mapping in same directory as data file')
     args = parser.parse_args()

4 课程资料获取

课程资料包括基于python的下载程序代码、自研可直接使用的下载软件、整理好的离线NHANES、讲义。关注vx公众号“熊大学习社”,回复“221119”,可获得资料链接。

另外,我们提供专业的SCI论文指导,服务合作请加vx:learning-daxiong

感谢您的学习,希望您有所收获。您的一键三连是我最大的动力。

更多的学习分享,关注B站熊大学习社。

幻灯片2