Erweitern Sie die Pandas DataFrame-Spalte in mehrere Zeilen

8

Wenn ich eine DataFrame habe, so dass:

%Vor%

gibt diese Struktur:

%Vor%

Wie erweitern Sie es zu den folgenden?

%Vor%     
gozzilli 05.07.2016, 12:22
quelle

5 Antworten

7

Sie könnten df.itertuples verwenden, um durch jede Zeile zu iterieren und ein Listenverständnis zu verwenden, um die Daten in das gewünschte Formular umzuwandeln:

%Vor%

ergibt

%Vor%

Divakars Lösung , using_repeat , ist am schnellsten:

%Vor%

Hier ist das Setup für den obigen Benchmark:

%Vor%     
unutbu 05.07.2016, 12:31
quelle
4

Hier ist etwas mit NumPy -

%Vor%

Wie in @unutbu's solution np.concatenate(df['days'].values) angegeben, wäre es schneller als np.hstack(df['days']) .

Es wird ein Schleifenverständnis verwendet, um die Länge jedes 'days' -Elements zu extrahieren, das zur Laufzeit minimal sein muss.

Beispiellauf -

%Vor%     
Divakar 05.07.2016 12:39
quelle
1

Eine 'native' Pandas-Lösung - wir entstapeln die Spalte in eine Reihe und fügen dann basierend auf dem Index wieder hinzu:

%Vor%     
jeremycg 05.07.2016 12:49
quelle
1

Wahrscheinlich irgendwie so:

%Vor%     
AnnetteC 05.07.2016 12:41
quelle
0

eine andere Lösung:

%Vor%     
MaxU 05.07.2016 12:34
quelle

Tags und Links