我有一个大型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。
任何帮助都会很棒,如果格式化在这里,请对不起。但实际上,任何帮助都会很棒!
答案 0 :(得分:0)
根据你的描述,我认为你唯一的缺点是在append命令之后的“break”语句。换句话说,如果你已经找到'4 mm',打破内循环,这样就可以进入下一行。
答案 1 :(得分:0)
我用以下方法解决了这个问题:
>>> set("words")
set(['s', 'r', 'o', 'w', 'd'])
>>> set(("words",))
set(['words'])
希望能帮到别人!干杯并感谢您的建议。