我想构建我的数据(类似于pandas
)以便于数据探索。我尝试使用xarray.DataArray
执行此任务(推荐的方式来表示pandas
http://pandas.pydata.org/pandas-docs/stable/dsintro.html#panel4d-and-panelnd-deprecated中的n维数据)但鉴于我的数据稀疏,它似乎效率低下。 是否有更好的方法可以在xarray.DataArray
或其他Python数据结构下构建数据,以便轻松进行数据探索?
数据说明
我的数据包括给予患者的处方。每个条目包括:
对于不同的患者,可能会有几个处方。患者也可以同时使用“强制”剂量和“任选/根据需要”剂量处方几种药物(例如2-3种药物)。我的数据集目前包括397名不同的患者,1520种不同的日期和161种不同的药物。我在397 * 1520 * 161 * 2条目中只有21790个非空条目(即0.01%)。
初始代码
我的数据目前按以下xarray.DataArray
组织:
drugs = xarray.DataArray(dosages, coords={'patient': patients, 'time': dates,
'drug': drug_names, 'timing': timings,
'drug_type': ('drug', drug_types),
'drug_class': ('drug', drug_classes)},
dims=['patient', 'time', 'drug', 'timing'])
其中dosages.shape = (len(patients), len(dates), len(drug_names), 2)
。 timing
轴对应于“预定”与“按需”剂量。所有缺失/零条目都设置为numpy.nan
。
答案 0 :(得分:1)
目前(从版本0.10.2开始)xarray仅支持密集阵列,但有一个Github问题https://github.com/pydata/xarray/issues/1375请求稀疏阵列支持。快速检查该问题表明,通过启用xarray支持sparse模块,可以积极地开展此工作。