我有一个数据框,其中包含许多描述项目属性的不同字段。所有字段均由字段ID标识,并且所有字段都需要不同的正则表达式来修复其中的数据。像这样:
|--field id--|--field value--|
|--25478963--|--1354cm45dia--|
|--98746534--|--15(whatevr)--|
|--98764566--|--789654125ly--|
因此,我需要对这些字段进行清理,并根据字段ID为每个字段应用特定的正则表达式。我的df中有大约一百万个项目,每个项目都有大约40个字段(因此,我的数据框中也有一个项目ID列)。我想从文件中读取我的正则表达式,并根据字段ID应用于一个字段。这是我的正则表达式的实际词典:
{
"43455": ["(\(.*\))"],
"55655": ["(\d{2,3})\"],
"42655": ["(\d{3})"],
"42665": ["(\d{3})"],
"9644": ["(\d{2,3})"]
}
但是当我加载它时,反斜杠加倍,因此正则表达式将不起作用:
field_regex = eval(open("link_to_file", 'r').read())
我得到的是
In [220]:field_regex["43455"][0]
Out[220]: '(\\(.*\\))'
如何从dict加载我的正则表达式并使之适用于我的数据框字段?