Ich versuche, ein neues Dataset zu erhalten oder den Wert der aktuellen Dataset-Spalten in ihre eindeutigen Werte zu ändern. Hier ist ein Beispiel dafür, was ich zu bekommen versuchen:ValueError: Die Länge der Werte entspricht nicht der Länge des Index | Pandas DataFrame.unique()
A B
-----
0| 1 1
1| 2 5
2| 1 5
3| 7 9
4| 7 9
5| 8 9
Wanted Result Not Wanted Result
A B A B
----- -----
0| 1 1 0| 1 1
1| 2 5 1| 2 5
2| 7 9 2|
3| 8 3| 7 9
4|
5| 8
ich über den Index nicht wirklich interessieren, aber es scheint das Problem zu sein. Mein Code ist bis jetzt ziemlich einfach, ich versuchte 2 Ansätze, 1 mit einem neuen Datenrahmen und einen ohne.
#With New DataFrame
def UniqueResults(dataframe):
df = pd.DataFrame()
for col in dataframe:
S=pd.Series(dataframe[col].unique())
df[col]=S.values
return df
#Without new DataFrame
def UniqueResults(dataframe):
for col in dataframe:
dataframe[col]=dataframe[col].unique()
return dataframe
Ich habe den Fehler "Länge der Werte nicht Länge des Index übereinstimmen" beide Male.
danke es funktioniert gut! Ich hatte nicht darüber nachgedacht, kleine Frage, dieser Code erzeugte keine NaNs, als ich ihn in CSV speicherte, aber ich habe die Zelle oben in einigen Spalten leer, die ich für Nans halte, die Frage ist: sind NaNs immer an der Spitze sein? –
Ich glaube nicht. Sie sollten unten sein, es sei denn, alle Werte sind für einige Spalten unbenutzt. – Psidom
Ok Ich werde die Lücken mit NaNs füllen und prüfen, ob sich die Ausgabe ändert –