Erstellen Sie eine Pivot-Tabelle, die Werte auflistet

8

Welche Aggfunc muss ich verwenden, um eine Liste mithilfe einer Pivot-Tabelle zu erstellen? Ich habe versucht, mit str, die nicht ganz funktioniert.

Eingaben

%Vor%

Ausgaben

%Vor%

Gewünschte Ausgabe

%Vor%     
bluprince13 14.10.2017, 10:46
quelle

3 Antworten

2

Sie können list selbst als Funktion verwenden:

%Vor%     
Roman Pekar 25.10.2017, 11:01
quelle
7

Verwenden Sie

%Vor%

Oder groupby würde tun.

%Vor%

Aber, wenn Sie dann als Liste möchten.

%Vor%

x.astype(str).str.cat(sep=', ') ist ähnlich wie ', '.join(x.astype(str))

    
Zero 14.10.2017 10:56
quelle
1

Option 1
str Vorkonversion + groupby + apply .

Sie könnten in eine Zeichenfolge vorkonvertieren, um den Aufruf groupby zu vereinfachen.

%Vor%

Und eine Änderung davon würde die Inplace-Zuweisung für die Geschwindigkeit beinhalten ( assign gibt eine Kopie zurück und ist langsamer):

%Vor%

Mit dem Nachteil, auch den ursprünglichen Datenrahmen zu verändern.

Leistung

%Vor% %Vor% %Vor%

Beachten Sie, dass die Methode .assign nur einige ms langsamer ist. Bei größeren Datenrahmen sollten größere Leistungssteigerungen gesehen werden.

Option 2
groupby + agg :

Eine ähnliche Operation folgt mit agg :

%Vor%

Und die In-Place-Version wäre die gleiche wie oben.

%Vor%

agg sollte Geschwindigkeitsgewinne über apply für größere Datenrahmen sehen.

    
cᴏʟᴅsᴘᴇᴇᴅ 24.10.2017 08:34
quelle

Tags und Links