Python,避免嵌套循环

时间:2020-01-07 08:31:18

标签: python python-3.x pandas

我有一个数据框,其值如('ABC'或'BCD'),另一字典格式为[{ID:'ABC',StList:['ABC','BCD','DEF' ]},{ID:'DEF',StList:['ABC','CCC','DEF']} ....]

df = ['ABC' or 'BCD',.....]

dictList = [{ID: 'ABC', StList: ['ABC','BCD','DEF']},{ID: 'DEF', StList: 'ABC','CCC','DEF']}....]

我必须遍历数据帧,检查列中的每个值是否存在于StList中-如果为true,则返回ID,然后将ID附加到另一个列表中。

为此,我使用了嵌套循环,但效果不理想-性能方面。还有另一种方法可以解决这个问题吗?

编辑:我尝试过的替代方法

Df1 = ['ABC', 'ABC' or 'BCD', 'ZYB', ('ABC' and 'CD') or 'NMM']

DF2 = [{ID:Testing, STList: ['ABC','BCD','ZYY','NMM'],{ID:Testing2, STList: ['ABC'].......}]

对于DF1的第一行: 返回结果应类似于final_result = ['Testing','Testing2'],然后它将在DF1中针对第一行进行更新。

是否有一种使用数据框功能实现此目标的方法-它在某些行中也具有布尔逻辑,也需要对其进行评估?

1 个答案:

答案 0 :(得分:0)

这个问题的答案是:否

没有任何可能的方法来阻止嵌套循环以提高性能。为了扫描字典/数组中的每个数据,它需要进行迭代才能到达索引的峰值节点。您可以使用选择器(column&rows)/ indexs来手动查找特定元素,但不适用于您的方案。