在python中过滤map对象

2024-06-16 10:29:51 发布

您现在位置:Python中文网/ 问答频道 /正文

由于spead问题,我一直在尝试使用map对象而不是list来计算我想要的东西。我使用以下函数:

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是数据中所有列名称的子集。当我取回map对象时,我试图将它放入一个列表中,并通过获取所有非None元素进行过滤。但这是非常缓慢的。有没有办法先过滤地图上的所有非空元素,然后获取列表(它们是等价的,这样列表就会短得多)?我尝试在map对象上应用filter函数,但没有成功。你知道吗

我在用Python3。你知道吗


Tags: 对象函数元素map列表datalendef