返回具有不同值的列的列表

时间:2018-05-10 19:56:24

标签: python pandas dataframe

我有类似下面示例的数据。我想返回具有不同值的所有列的列表,如下面的示例输出。

如果我在我的数据中只有两条记录,转置并创建一个只比较两列的新列,我可以想到如何做到这一点但是我不知道如何为两个以上的记录做这个数据。任何提示都非常感谢。

打印df:

Col1    Col2    Col3
A       c       d
A       f       d
A       c       e

期望的输出:

[Col2, Col3]

3 个答案:

答案 0 :(得分:4)

使用nunique

df.nunique().gt(1).loc[lambda x : x].index
Out[97]: Index(['Col2', 'Col3'], dtype='object')

答案 1 :(得分:4)

filter

list(filter(lambda c: df[c].nunique() > 1, df))

['Col2', 'Col3']

答案 2 :(得分:2)

同样,df.columns上的索引:

df.columns[df.nunique().gt(1)]

Index(['Col2', 'Col3'], dtype='object')