搜索导入的csv以选择文本并生成结果字典

时间:2015-09-11 23:55:44

标签: python regex csv dictionary

我有一个大型CT胸部检查数据集,我需要使用python导入字典,搜索选择文本,然后将所选行输出为csv。

到目前为止,这是我的代码:

nodule_4mm = '4 mm'
result = {}
csv_columns = ['Rank','Accession1','MRN1','Textbox2',
           'Textbox47','Textbox43','Textbox45',
           'ReadBy','SignedBy','Addendum1','ReadDate',
           'SignedDate','Textbox49','Result','Impression']

rootdir = '/Users/davidbmccoy/Documents/Chest_Nodule_DataMine';
file = 'NodulesEdited.csv'

path = rootdir
os.chdir(path)

reader = csv.DictReader(open(file, 'rU'), delimiter=',', quotechar='"')

for row in reader:
    for column, value in row.iteritems():
        if re.compile(r'\b({0})\b'.format(nodule_4mm), flags=re.IGNORECASE).search:
            result.setdefault(column, []).append(value)
print result

这有几个问题。如果在行中找到'4 mm',我需要它只到结果一次。在结果为'4 mm'的所有行之后,我需要将结果导出为csv。

任何帮助都会很棒,如果格式化在这里,请对不起。但实际上,任何帮助都会很棒!

2 个答案:

答案 0 :(得分:0)

根据你的描述,我认为你唯一的缺点是在append命令之后的“break”语句。换句话说,如果你已经找到'4 mm',打破内循环,这样就可以进入下一行。

答案 1 :(得分:0)

我用以下方法解决了这个问题:

>>> set("words")
set(['s', 'r', 'o', 'w', 'd'])
>>> set(("words",))
set(['words'])

希望能帮到别人!干杯并感谢您的建议。