Saya memiliki panda DataFrame dan ingin mencari pilih kolom dengan nilai paling unik. Saya sudah memfilter nilai unik dengan nunique(). Bagaimana saya sekarang bisa memilih kolom dengan nunique() tertinggi?

Ini adalah kode saya sejauh ini:

numeric_columns = df.select_dtypes(include = (int or float))
    unique = []
    for column in numeric_columns:
        unique.append(numeric_columns[column].nunique())

Saya nanti perlu memfilter semua kolom kerangka data saya tergantung pada kolom ini (paling unik)

1
Jana 9 November 2021, 15:21
Oh dan sebagai output untuk unique saya mendapatkan [84, 77, 35, 84] jadi saya harus memilih "84" pertama
 – 
Jana
9 November 2021, 15:23

1 menjawab

Jawaban Terbaik

Gunakan DataFrame.select_dtypes dengan np.number, lalu dapatkan DataFrame.nunique dengan kolom dengan nilai maksimal menurut Series.idxmax:

df = pd.DataFrame({'a':[1,2,3,4],'b':[1,2,2,2], 'c':list('abcd')})
print (df)
   a  b  c
0  1  1  a
1  2  2  b
2  3  2  c
3  4  2  d

numeric = df.select_dtypes(include = np.number)

nu = numeric.nunique().idxmax()
print (nu)
a
3
jezrael 9 November 2021, 15:41