Biorący udział dla uczniów.CSV wygląda tak:

studentid, choice1, choice2, choice3, choice4
1,2,3,3,4
2,1,1,1,3
3,2,1,2,2
4,3,1,2,

Pożądana zmiana do CSV po zakończeniu Pandas jest usuwanie dowolnych duplikatów, które pojawiają się po pierwszej instancji wartości:

studentid, choice1, choice2, choice3, choice4
1,2,3,,4
2,1,,,3
3,2,1,,
4,3,1,2,

Naprawdę nie mam pojęcia, jak pisać ten kod. Prawdopodobnie używa funkcji PD.Duplikowanej () w pewnym momencie, ale nie wiesz, jak wyglądało.

-1
blindside044 22 lipiec 2020, 04:51

1 odpowiedź

Najlepsza odpowiedź

Użyj pandas.DataFrame.where za pomocą pandas.Series.duplicated:

df = df.set_index("studentid")
new_df = df.where(~df.apply(pd.Series.duplicated, 1), "").reset_index()
print(new_df)

Wynik:

   studentid  choice1 choice2 choice3 choice4
0          1        2       3               4
1          2        1                       3
2          3        2       1                
3          4        3       1       2        
1
Chris 22 lipiec 2020, 02:12