在DataFrame的列上应用唯一

时间:2019-12-16 10:35:45

标签: python pandas

我有超过385个特征的数据,以查找我使用过df.unique()函数的列的唯一性。 但是,我必须在所有385列中找到唯一的值。

我尝试如下使用for循环,

col = [df_train.columns]

for i in col:
    print(i.unique())

我得到的输出如下

Index(['ID', 'y', 'X0', 'X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X8',
       ...
       'X375', 'X376', 'X377', 'X378', 'X379', 'X380', 'X382', 'X383', 'X384',
       'X385'],
      dtype='object', length=366)

但是以上是数据集的列名称,而不是每列的唯一值。

当我申请循环时,我在做一个概念错误,如果能纠正我要去的地方或者做同样的事情,我将不胜感激。

谢谢。

3 个答案:

答案 0 :(得分:1)

for i in df_train.columns:
    print(df_train[i].unique())

如果愿意

print(df_train.columns)

它只会给您列名

例如["x0","x1","x2"]

您需要使用索引来访问列值,例如df_train["column_name"]

答案 1 :(得分:0)

要在unique中查找dataframe值,我们可以使用describe方法,如下所示

df.describe().loc['unique']

答案 2 :(得分:0)

尝试每列运行unique()方法:

col = df.columns.values.tolist()
unique_vals_list = []

for column in col:
    unique_vals_list.append(list(df[column].unique()))

您的unique_vals_list现在将包含每列的所有唯一值。这将是一个列表列表,因此每个索引实际上是您数据框的相同索引。

因此,访问第一列的所有唯一关键字将具有以下语法:

unique_vals_list[0]

访问第二列的唯一值:

unique_vals_list[1]

以此类推。