ich Pandas Datenrahmen haben, die die folgenden Spalten von Integer-Werten:Pandas mit Transformationssumme zu lange dauert
user_id, user_agent_id, appearances
Anzahl der Reihen unterschiedlich sein, aber sie sind mehr als 4 hunderttausend. Ich möchte eine neue Zeilensumme erstellen, die die Summe aller Erscheinungen für jeden Benutzer darstellt. Also habe ich folgendes tun:
dataframe['total_appearances'] = dataframe['appearances'].groupby(dataframe['user_id']).transform('sum')
Ich brauche das, weil ich Prozentsatz pro Nutzer von user_agent_id berechnen möchten, die
dataframe['percent'] = dataframe['appearances']/dataframe['total_appearances']
ist ich das gleiche tun max-Wert von Prozent zu berechnen
dataframe['max_percent'] = dataframe['percent'].groupby(dataframe['user_id']).transform('max')
usw.
die Sache ist, während die max-Methode in dem Transformationsverfahren t akes etwa 5m dauert die sum-methode weit länger als 2sec. Ist das natürlich? Gibt es einen schnelleren Weg, um die Informationen des total_appearances
zu erhalten?
Was ist eine Methode? Entschuldigung, es ist der Spaltenname. Auch habe ich diese Syntax nie mit einer Paranthese auf den Spaltennamen gesehen. – Apostolos
Ich habe kein Problem bei der Berechnung der Prozentsatz, sondern der gesamten Darstellung Spalte. Die Transformation ist das Problem :). Aber ich werde überprüfen und zu Ihnen zurückkommen – Apostolos
Name erwarteten Fehler in der Klammer. Vielleicht verpasst du einen Aufruf einer Methode? – Apostolos