- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我对此的描述完全迟钝,首先让我道歉,大部分内容仍在即时学习。
我有几个大型的综合医院信息文本文件 (.txt)(约 600,000 行),我正在使用 Python 对其进行解析。我一直在使用默认字典 (python2.7) 来获取 pt 深度一级的计数和子计数。诊断。例如,如果希望捕捉心脏病发作然后根据类型(伪代码)进行区分:
if 'heart attack' in line[65:69]:
defaultdict['heart attack'] +=1
if [65:69] == 'worst kind':
defaultdict['worst'] += 1
else:
defaultdict['not worst'] +=1
通过这种方式,我可以捕捉到心脏病发作以及它们是否是我感兴趣的特定事件。一切正常。但是,现在我还想收集患者年龄(以编码范围报告)、性别(M、F、U)和种族等信息(来自同一行)。我意识到我的技术是不太适合这个——它的复杂性似乎在快速增长。所以,在我深入研究之前——我应该有另一种方法来解决这个问题吗?
最终我打算将所有这些文件放入一个实际的数据库中,但这基本上是最后一条信息。我需要当前的项目,所以我很乐意将它转储到 excel 中并暂时绘制图表。
感谢任何建议!
编辑:示例线就像 -
02032011JuniorHospital 932220320M09A228393
03092011MassGeneralHospitals 923392818F09B228182
所以所有的行都是固定长度的,其中行 [0:8] 始终是日期,等等。有一个单独的文件(字典?)解释了数字的含义 - 所以诊断将类似于 410.22,年龄将在 0 = 0-1 岁、1 = 2-3 岁等范围内......
目标:对于我想要的每个诊断,还想知道特定诊断是一种兴趣的子类型(使用上面的代码没问题),与该诊断相关的各种年龄是多少(即,有多少在每个年龄段)。我目前将此输出到 excel 文件 (csv),因此我想要可以根据需要绘制的各种多列。
再一次,我可以想出如何做到这一切,只需创建一些额外的默认指令——似乎应该有一种更简单的方法将它们组合到一个主要对象中!
呸
最佳答案
您可以概括分层计数的概念,以获得更易于修改的更清晰的代码。分层计数器类的一个基本示例是
class HierarchicCounter(object):
def __init__(self, key, hierarchy):
self.key = key
self.hierarchy = hierarchy
self.counts = defaultdict(int)
self.subcounters = defaultdict(self._create_subcounters)
def _create_subcounters(self):
return {key: HierarchicCounter(key, hierarchy)
for key, hierarchy in self.hierarchy.iteritems()}
def count(self, line):
key = self.key(line)
if key is None:
return
self.counts[key] += 1
for subcounter in self.subcounters[key].itervalues():
subcounter.count(line)
这个类的构造函数接受两个参数。 key
参数是“键函数”,它告诉计数器它应该计数什么。如果一行被馈送到计数器,它会对其应用键函数并增加与检索到的键对应的计数。 hierarchy
参数是一个字典,将所需子计数器的关键函数映射到它们各自的层次结构。
示例用法:
def diagnosis_major(line):
return line[0:3]
def diagnosis_minor(line):
return line[3:5]
def age(line):
return int(line[5:7])
def sex(line):
return line[7]
counter = HierarchicCounter(
diagnosis_major, {diagnosis_minor: {sex: {}}, age: {}})
这会创建一些简单的关键函数,从一行中提取不同的字段。在您的应用程序中,关键功能可能会变得更加复杂。您也可以在这里过滤掉键——如果键函数返回 None
,计数器将简单地忽略该行。最后两行创建了一个具有以下计数层次结构的 HierarchicCounter
实例:
diagnosis_major
|-- diagnosis_minor
| \-- sex
\-- age
因此计数器统计了每个重大诊断的病例数。对于每一个大诊断,统计这个大诊断对应的小诊断和年龄。对于每个次要诊断,每个主要诊断都会计算性别。
当然这个例子并不完整。您需要添加一些代码,以某种格式实际输出在计数器层次结构中收集的计数——这只是为了让您了解如何以更通用的方式对其进行抽象。
关于Python解析大文本文件并抓取多层次数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258531/
想象一下,图书馆里有很多页数很多的书。我有一个 Library 对象,它有一个 HashSet 书籍,有一个页面对象列表。我如何使用 LINQ 计算库中有多少页? 干杯 尼克 最佳答案 假设您描述的类
我目前正在执行以下操作来为我的 javascript 代码提供一个命名空间: (function(foo, $, undefined) { // function: showNoteDialo
我正在努力弄清楚如何异步执行多个级别的 promise 。我已经搜索了文档,但大多数 promise 库都让您等待所有 promise 执行一些逻辑或一个然后下一个。我需要这两方面的一个方面。我写了一
我正在尝试使用标准 wpf 数据网格为多级表数据创建表编辑器。是否可以创建类似这样的嵌套结构? 使用标准的行细节嵌套网格看起来很难看,因为行细节必须有固定的高度(所以我会得到多个滚动) 最佳答案 每个
我正在尝试让级联“删除”中间件在 mongoose 上运行。 我有一个数据库: 'modules' -> 'modulesInst' -> 'assignments' -> 'studentAssig
我是一名优秀的程序员,十分优秀!