过滤python中的地图对象

时间:2017-11-17 09:23:59

标签: python list parallel-processing iterator maps

我一直在尝试使用地图对象而不是列表,以便根据spead问题计算出我想要的内容。我使用以下函数:

def equ(vector):
    if (len(set(data[vector[0]]))==len(data[[vector[0],vector[1]]].drop_duplicates()[vector[0]]) and len(set(data[vector[0]]))==len(set(data[vector[1]]))):
        return vector

向量是一对列名,如果它们是等价的,函数只返回对元组(这个等价关系类似于=如果两列是等价的,那么在从一列到另一列的值之间存在转换/字典) 。

然后我使用地图:

value=spool.map(equ, list(itertools.combinations(subset,2)))

其中subset是数据中所有列名的子集。当我找回地图对象时,我试图将其放入列表并通过获取所有非None元素进行过滤。但这非常缓慢。有没有办法首先通过地图上的所有非空元素进行过滤,然后获取列表(它是不相同的,它们将是等效的,因此它将是一个更短的列表)?我试图在地图对象上应用过滤器功能,但这不起作用。

我正在使用python3。

0 个答案:

没有答案