将数据框文本与字典匹配:加快进程

时间:2017-03-20 13:33:19

标签: python-3.x pandas dictionary

我正在尝试将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函数还是其他来加快处理速度?

任何帮助或建议都会很棒!

0 个答案:

没有答案