首先,让我们一起分析一下,如果我的描述被完全推迟了,仍然可以在大部分时间里学习。解析大型文本文件并捕获多级数据的Python
我有几个大的文本文件(.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
这样,我赶上心脏发作和是否他们所关心的具体的一个。这一切都很好。但是,现在我也想收集患者年龄(编码范围报告),性别(男性,女性,U)和种族等信息(来自同一行)。我意识到我的技术是不太适合这一点 - 它似乎以快速增长的复杂性。所以,在我深入挖掘之前 - 还有另一种方法可以解决这个问题吗?
最终,我打算将所有这些文件都放到实际的数据库中,但这基本上是最后一条信息。我需要为当前的项目,所以我很舒服,只是倾销到Excel和现在的图形。
感谢您的任何建议!
编辑:样品管线就像 -
02032011JuniorHospital 932220320M09A228393
03092011MassGeneralHospitals 923392818F09B228182
因此,所有线将固定长度,其中行:(?字典)[0 8]总是日期等有一个单独的文件,它解释这些数字的含义 - 因此诊断将会像410.22那样,年龄将在0 = 0-1岁,1 = 2-3岁等等范围内......
目标:对于每个诊断我想,也想知道是特别诊断了一个子类型(没有问题,以上代码得到这么多),与诊断有关的各种年龄(即每个年龄段有多少)有什么关系。我目前有这个输出到excel文件(csv),所以我想要各种多列,我可以绘制我需要的。
再次,我可以弄清楚如何做到这一切,只是创建一些额外的默认字典 - 它似乎应该有一个更简单的方法将它们组合成一个主要对象!
呼
如果您给我们一个关于文件格式的提示,我们可能会给你一个提示如何解析它。 (几行示例数据会很棒。) – 2011-06-06 22:04:46
这完全取决于您想要的输入和输出格式。但是一个成熟的DB-ORM库可能会帮你解决。 – Santa 2011-06-06 22:07:31
1.这是一个简单的.txt文件,固定行(所有行相同长度)2.我输出到.csv(使用excel)并使用Dictwriter。 – chris 2011-06-06 23:53:09