python - 多维稀疏数据的最佳数据结构

标签 python python-3.x pandas python-xarray

我想构建我的数据(类似于 pandas)以便于轻松地探索数据。我尝试使用 xarray.DataArray 来完成此任务(在 pandas http://pandas.pydata.org/pandas-docs/stable/dsintro.html#panel4d-and-panelnd-deprecated 中推荐的表示 n 维数据的方法),但考虑到我的数据稀疏,它似乎效率低下。 是否有更好的方法在 xarray.DataArray 或其他 Python 数据结构下构建我的数据以便轻松进行数据探索?

数据说明

我的数据包含给患者的处方。每个条目包括:

  • 日期 (datetime64)
  • 患者编号(整数)
  • 药物名称(字符串)
  • 药物类型(字符串)
  • 药物类别(字符串)
  • 预定剂量(实际值)
  • 按需剂量(实际值)

对于不同的患者,一个日期可能有多个处方。患者也可能同时开具“强制”剂量和“可选/按需”剂量的几种药物(例如,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.10.2 起)xarray 仅支持密集数组,但存在 Github 问题 https://github.com/pydata/xarray/issues/1375请求稀疏数组支持。对该问题的快速检查表明,正在通过使 xarray 支持 sparse 来积极解决这个问题。模块。

关于python - 多维稀疏数据的最佳数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49122420/

相关文章:

python - 打包 keras tokenizer/word index 用于 google-cloud-ml-engine

python-3.x - Python中使用warpAffine的OpenCV旋转导致错误的边界

python - 将数据框 Pandas 的列更改为其中一列的值

python - OpenERP 模块 xml ValidateError

python - 不可订购的类型 : int() < str()

python - 在 Windows 上安装 virtualenvwrapper

Python 3.2.2 从控制台读取

python - 无法访问 BeautifulSoup 中的表标签——显示为声明而不是标签

python - 如何展平 python/pandas 数据透视表并操作列名?

python - 如何按值删除列?