繁体   English   中英

查找 dataframe 的所有列的唯一值

[英]Find unique values for all the columns of a dataframe

如何获取 dataframe 中所有列的唯一值? 到目前为止,我正在尝试做类似下面的事情。

for col in train_features_df.columns:
    print(train_features_df.col.unique())

但这给了我错误AttributeError: 'DataFrame' object has no attribute 'col'

例如对于下面的 dataframe 我想要下面的 output

 df = pd.DataFrame({'A':[1,1,3],
               'B':[4,5,6],
               'C':[7,7,7]})

我想要一个 output,A 为 1,3,B 为 4,5,6,C 为 7。

您可以通过转置来对每个系列应用unique的,

>>> df
   A  B  C
0  1  4  7
1  1  5  7
2  3  6  7
>>> df.T.apply(lambda x: x.unique(), axis=1)
A       [1, 3]
B    [4, 5, 6]
C          [7]
dtype: object
>>> 

您可以尝试使用drop_duplicates() for loop以获得所需的结果,无需使用任何复杂的 function。

import pandas as pd
df = pd.DataFrame({'A':[1,1,3],'B':[4,5,6],'C':[7,7,7]})

for i in df.columns:
    print(f'{i} : {list(df[i].drop_duplicates())}')

Output 如下:

A : [1, 3]
B : [4, 5, 6]
C : [7]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM