python工具,用于处理来自healthcare cost and utilization program(http://hcup us.ahrq.gov)的数据。

PyHCU的Python项目详细描述


pyhcup是一个python库,用于解析和导入从美国医疗保健成本和利用程序(http://hcup-us.ahrq.gov)获得的数据。

关于

来自hcup的数据是一个文本文件,每一列有特定的宽度。但是,这些列的宽度及其名称在其他地方。hcup将此元数据作为sas或spss数据加载程序提供。

pyhcup是用来从sas加载程序中提取元数据的,然后使用该元数据来解析固定宽度文本文件中的实际数据。您仍然需要通过hcup获取实际数据。

在作者的博客http://bielism.blogspot.com/2013/12/hcup-and-python-pt-i-background.html上的一系列文章中提供了一组更详细的说明。

示例用法

加载数据文件/加载文件组合。

import pyhcup

# specify where your data and loadfiles live
datafile = 'D:\\Users\\hcup\\sid\\NY_SID_2009_CORE.asc'
loadfile = 'D:\\Users\\hcup\\sid\\sasload\\NY_SID_2009_CORE.sas'

# pull basic meta from SAS loadfile
meta_df = pyhcup.meta_from_sas(loadfile)

# use meta knowledge to parse datafile into a pandas DataFrame
df = pyhcup.read(datafile, meta_df)

# that's it. use df from here.

用两种方法处理无法保存在内存中的非常大的文件。

  1. 要导入行的子集(例如用于准备工作或疑难解答),请使用sas.df_from_sas()指定要读取的nrows和/或要跳过的skip rows。
# optionally specify nrows and/or skiprows to handle larger files
df = pyhcup.read(datafile, meta_df, nrows=500000, skiprows=1000000)
  1. 要遍历行块(如导入数据库),请首先使用元数据构建列名和列宽列表。接下来,将chunkSize传递给上面的read()函数,以创建生成可管理大小的块的生成器。
chunk_size = 500000
reader = pyhcup.read(datafile, meta_df, chunksize=chunk_size)
for df in reader:
    # do your business
    # such as replacing sentinel values (below)
    # or inserting into a database with another Python library

无论是拉入所有记录还是只拉入一大块记录,都可以替换hcup中所有令人讨厌的丢失/无效数据占位符(这对于一般解析非hcup文件的丢失值不太有用)。

# fyi, this bulldozes through all values in all columns with no per-column control
replaced = pyhcup.replace_sentinels(df)

加载文件(元数据)的快捷方式

HCUP为州住院病人数据库(SID)、州非卧床手术数据库(SASD)和州急诊部数据库(SEDD)提供的SAS加载程序文件捆绑在该软件包中,以便于访问。您可以直接检索这些数据的元数据,而不必指定如上所述的加载文件路径。

使用get_meta()函数以这种方式获取meta。你必须把一个州的缩写作为第一个参数,把一年作为第二个参数,就像这样。

meta_df = pyhcup.get_meta('NY', 2009)

默认情况下,get_meta()获取SID核心数据。其他元可以用可选的关键字参数datafile('sid','sedd',或'sasd')和category('core','chgs','severity','dx_pr_grps',或'ahal')获取。

# California emergency department charges meta for 2010
ca_2010_emergency_charges_meta = pyhcup.get_meta('CA', 2010, datafile='SEDD', category='CHGS')

# Arizona outpatient surgery DRG records meta for 2004
az_2004_surg_groups_meta = pyhcup.get_meta('AZ', 2004, datafile='SASD', category='DX_PR_GRPS'

# etc.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中,如何使用lambda表达式按月计算排名?   java如何更改createTempFile中的默认名称?   java无法找到或加载主类net。Fabrimc。德夫朗。主织物   java如何将应用程序绑定到端口161?   使用Spring Boot运行基于Flyway Java的回调   java如何将源代码库添加到IntelliJ(例如来自Github)?   用于MacOSX上应用程序打包的DMG后台java自定义下拉图标   Java泛型和返回类型   java Docker volume mapping+windows=难以置信的慢?   java gwt gxt文本字段。强制无效   试图使用Map<Class,Function<T,R>>替换Java8中的instanceOf,无法放入映射   java Spring SpEL错误   java如何格式化输出值?   java异步HTTP请求,排队请求   带有Kafka、ClassCastException的java Avro模式?   io我们是否需要在java中为Windows和linux提供单独的文件路径   哈姆克雷斯特爪哇。util。IllegalFormatFlagsException:标志=“”   java组合框所选项目   java如何停止程序以等待用户操作?