我正在尝试将pandas DataFrame的单元格中的列表与字典mesh
中的标记进行比较,并在另一列的列表中生成匹配。
例如,dict看起来像这样:
{ "mesh-tag 1": (
[list of UIs],
[list of treenumbers]
),
"mesh-tag 2": (
[list of UIs ],
[list of treenumbers]
), ...}
我的目标是将抽象文本AbsText
与字典中的网格标记进行比较,并在另一列中生成每个抽象的命中列表。因此我使用嵌套循环:
for i in abstractdf.index:
# line for line
meshlist = []
UIlist = []
for meshterm in mesh.keys():
# tag for tag
if meshterm in abstractdf["AbsText"][i]:
meshlist.append(meshterm)
UIlist.append(mesh[meshterm][0])
abstractdf.set_value(i, "MeSH-Term", meshlist)
abstractdf.set_value(i, "Descriptor-UI", UIlist)
这实际上是有效的,但对于一个甚至很小的测试数据帧都需要永远。由于我是编码新手,我知道这可能是间接的... :(
有没有可能,例如使用np.where
函数还是其他来加快处理速度?
任何帮助或建议都会很棒!