获取列表中具有按值重复列名称的列表 [英] Get lists in list with names of duplicate columns by values

查看:58
本文介绍了获取列表中具有按值重复列名称的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有数据框:

import pandas as pd

data = [[101, 1, 2, 10, 3, 2, 3, 1], [5,5, 5, 5, 5, 5, 5, 5], [30, 3, 7, 14, 10, 7, 10, 2], [11, 2, 6, 15, 20, 6, 20, 11]] 

df = pd.DataFrame(data, columns = ['xen', 'sim', 'tab', 'sim', 'simm', 'box', 'simm', 'res'])

它看起来像:

|   xen |   sim |   tab |   sim |   simm |   box |   simm |   res |
|------:|------:|------:|------:|-------:|------:|-------:|------:|
|   101 |     1 |     2 |    10 |      3 |     2 |      3 |     1 |
|     5 |     5 |     5 |     5 |      5 |     5 |      5 |     5 |
|    30 |     3 |     7 |    14 |     10 |     7 |     10 |     2 |
|    11 |     2 |     6 |    15 |     20 |     6 |     20 |    11 |

我需要获取列表中的列表,其中的列表按值重复列的名称(可以按名称重复也可以不重复).对于上面的数据帧,输出应类似于:

I need to get lists in list with names of duplicate columns by values (it can be duplicate by name or may not). For data frame above output should be like:

[["tab", "box"], ["simm", "simm"]]

推荐答案

IIUC

l=df.T.reset_index().groupby(df.index.tolist())['index'].agg(list).loc[lambda x : x.str.len()>=2].values.tolist()
[['tab', 'box'], ['simm', 'simm']]

这篇关于获取列表中具有按值重复列名称的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆