Rückgabe einer .transform Methode in ein Dataframe umwandeln
Verfasst: Montag 18. April 2022, 16:48
Guten Tag,
ich habe eine transform Methode geschrieben, der ein Dataframe übergeben wird.
Dieser Dataframe wird dann in ein np.array umgewandelt.
Dann werden Rechenoperationen zwischen den Spalten durchgeführt und in einer neuen Spalte gespeichert.
Also erhalte ich am ende einen np.array, welcher mehr Spalten hat als der np.array der am Ende zurückgegeben wird.
Nun möchte ich das zurückgegebene array mit den zusätzlichen Spalten in ein Dataframe umwandeln. wie stelle ich das an? (siehe Code 1)
CODE 1
Die Frage ist nun wie ich das zurückgegebene Array in ein Dataframe umwandele
Meine Idee war (siehe Code 2)
Code 2
Das Problem bei dem Code 2 ist, dass die zusätzlichen Spalten nicht angezeigt werden
ich habe eine transform Methode geschrieben, der ein Dataframe übergeben wird.
Dieser Dataframe wird dann in ein np.array umgewandelt.
Dann werden Rechenoperationen zwischen den Spalten durchgeführt und in einer neuen Spalte gespeichert.
Also erhalte ich am ende einen np.array, welcher mehr Spalten hat als der np.array der am Ende zurückgegeben wird.
Nun möchte ich das zurückgegebene array mit den zusätzlichen Spalten in ein Dataframe umwandeln. wie stelle ich das an? (siehe Code 1)
CODE 1
Code: Alles auswählen
# Transform methode gibt Array zurück (kein Dataframe!)
def transform(self, X, y = None):
# von dem übergebene Parameter (X = np.array) sollen die Spalten von einander dividiert werden
# und in einer anderen Spalte gespeichert werden
# dann wird am ende das übergebene Array mit den zusätzlichen Spalten zurückgegeben
# Folgende Spalten soll in das Dataframe aufgenommen werden
schlafzimmerProHaushaltSpalte = X[:,bedroom_index]/X[:,households_index]
zimmerProHaushaltSpalte = X[:,room_index]/X.values[:,households_index]
return np.c_[X, schlafzimmerProHaushaltspalte ,zimmerProHaushalt]
Meine Idee war (siehe Code 2)
Code 2
Code: Alles auswählen
# der Parameter der in die Methode übergeben werden soll heißt "übergebener_Dataframe"
# am ende sollen die zusätzlichen Spalten, die in der Methode berechnet werden, an "übergebener_Dataframe" angehängt werden
rückgabe_der_Methode =attribut_adder.transform( übergebener_Dataframe )
rückgabe_als_Dataframe = pd.DataFrame( übergebener_Dataframe , index = übergebener_Dataframe .index, columns = übergebener_Dataframe .columns)