如何在python元组中获得不同的元素?

2024-04-26 18:36:31 发布

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

我想从元组列表中得到不同的值。假设我们生成了以下元组列表

df_clustering_dupliacteRemove.groupby('cluster').agg(tuple).sum(1).map(natsorted).map(tuple)

输出

 604                             (GM0051, GM0178, GM0191)
 605                     (GM0134, GM0267, GM0351, GM0615)
 606                             (GM0180, GM0474, GM0512)
 607                             (GM0216, GM0471, GM0586)
 608                             (GM0373, GM0373, GM0373)

如果你看第608个元组,元素是一样的。我想使这些元素成为一个元素(获得唯一/不同的值)。你知道吗

我需要的样本输出

 604                             (GM0051, GM0178, GM0191)
 605                     (GM0134, GM0267, GM0351, GM0615)
 606                             (GM0180, GM0474, GM0512)
 607                             (GM0216, GM0471, GM0586)
 608                             (GM0373)

Tags: 元素map列表元组tuplegm0134gm0267gm0474
3条回答

这对我有用。你知道吗

> myDf

    COL
0   (a, b, c)
1   (d, e, f)
2   (a, a)
3   a
4   (c, c, c)

> result = pd.DataFrame(myDf.apply( lambda x : tuple(set(x[0])), axis=1))
> result

0
0   (a, b, c)
1   (f, e, d)
2   (a,)
3   (a,)
4   (c,)

这将帮助您,我使用集合来简化元组:)

def simplify_tuple(t):
    return tuple({i for i in t})

tuple_ = (1, 1, 1, 2, 3)
print(simplify_tuple(tuple_))
# (1, 2, 3)

您只需执行一组元组,就可以从每个元组中获得唯一的值。你知道吗

In [1]: data = [('GM0051', 'GM0178', 'GM0191'),('GM0134', 'GM0267', 'GM0351', 'GM0615'),('GM0180', 'GM0474', 'GM0512'),('GM0216', 'GM0471', 'GM0586'),('GM0373', 'GM0373', 'GM0373')]
In [2]: [tuple(set(d)) for d in data]
Out[2]: 
    [('GM0051', 'GM0191', 'GM0178'),
    ('GM0267', 'GM0134', 'GM0351', 'GM0615'),
    ('GM0474', 'GM0512', 'GM0180'),
    ('GM0216', 'GM0471', 'GM0586'),
    ('GM0373',)]

相关问题 更多 >