Dies ist mein Datenframe (mit vielen weiteren Buchstaben und einer Länge von ~ 35,5k) und Zeug wo die - sind andere relevante Strings). Alle Variablen sind Zeichenfolgen und ['C1', 'C2'] ist der MultiIndex.Geteilte Zeilen nach Text in zwei Spalten (Python, Pandas)
tmp
C1 C2 C3 C4 C5 Start End C8
A 1 - - - 12 14 -
A 2 - - - 1,4,7 3,6,10 -
A 3 - - - 16,19 17,21 -
A 4 - - - 22 24 -
Ich brauche es, dies zu werden (Split jede Zeile, die Kommas Aufrechterhaltung alles andere enthält):
C1 C2 C3 C4 C5 Start End C8 Appearance
A 1 - - - 12 14 - 1
A 2 - - - 1 3 - 1
A 2 - - - 4 6 - 2
A 2 - - - 7 10 - 3
A 3 - - - 16 17 - 1
A 3 - - - 19 21 - 2
A 4 - - - 22 24 - 1
Ich habe versucht, dieses Skript pandas: How do I split text in a column into multiple rows?
als
s = tmp['Start'].str.split(',').apply(Series, 1).stack()
s.index = s.index.droplevel(-1)
s.name = 'Start
del tmp['Start']
final = tmp.join(s)
Aber dann ist das Ergebnis viel größer als es sollte! Ich bekomme Tausende von Wiederholungen und das versucht nur, Start zu teilen. Ich kann nicht einmal vorstellen, dies zu tun versuchen, sowohl für Start und Ende (jedes Komma in ‚Start‘ impliziert ein Komma in ‚Ende‘.
Lengths:
tmp = 35568
s = 35676
final = 293408
Ist das nicht erwartet? Wenn Sie [1, 4, 7] hintereinander haben, haben Sie zwei zusätzliche Zeilen im Ergebnis. – ayhan