如何在pandas数据框中查找包含除NaN之外的所有唯一值的列名?

问题描述 投票:0回答:1

我想从Pandas数据框中找到包含所有非重复项的列,但NaN除外。

   x   y   z
a  1   2   A
b  2   2   B
c  NaN 3   D
d  4   NaN NaN
e  NaN NaN NaN 

列“ x”和“ z”具有非重复的值,但NaN除外,因此我想挑选它们并创建一个新的数据框。

pandas unique
1个回答
0
投票

比较唯一值的长度和应用dropna()之后的值的长度。

尝试此代码。

import pandas as pd
import numpy as np
df = pd.DataFrame({"x":[1, 2, np.nan, 4, np.nan],
                   "y":[2, 2, 3, np.nan, np.nan],
                   "z":["A", "B", "D", np.nan, np.nan]})

for col in df.columns:
    if len(df[col].dropna()) == len(df[col].dropna().unique()):
        print(col)
© www.soinside.com 2019 - 2024. All rights reserved.