Saya mencoba membentuk kembali kerangka data saya, di mana saya ingin Person menjadi indeks, namun bagaimana cara membuatnya sehingga indeksnya unik? Saya tidak tahu ingin duplikat di Index.

df = pd.DataFrame({'Person':['Paul','Paul','Paul','John','John','Mia'],'Score':[24,23,54,64,89,56],'Type':['A','C','F','A','G','X'],'Number':[1,2,3,1,2,1]})

df.set_index('Person',inplace = True)

Keluaran yang diinginkan:

enter image description here

0
kjay 25 Mei 2021, 23:06

2 jawaban

Jawaban Terbaik

Jika Anda hanya ingin menghapus nilai duplikat dari indeks gunakan:

df = df.set_index('Person')
df.index = np.where(df.index.duplicated(), '', df.index) 
1
Nk03 25 Mei 2021, 20:14

Anda dapat membuat MultiIndex, dengan mempertahankan indeks numerik sebelumnya sebagai tingkat kedua:

df.set_index(['Person', df.index], inplace=True)
df
            Score   Type    Number
Person              
Paul    0   24      A       1
        1   23      C       2
        2   54      F       3
John    3   64      A       1
        4   89      G       2
Mia     5   56      X       1

Saya pikir ini adalah yang paling dekat yang bisa Anda dapatkan dengan output yang Anda inginkan, karena menurut definisi harus ada nilai indeks untuk setiap baris kerangka data.

1
Arne 25 Mei 2021, 20:19