我想从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除外,因此我想挑选它们并创建一个新的数据框。
比较唯一值的长度和应用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)