Ich habe einen Panda-Datenrahmen. Eine der Spalten enthält eine Liste. Ich möchte, dass diese Spalte eine einzelne Zeichenfolge ist.
Zum Beispiel sollte meine Liste ['eins', 'zwei', 'drei'] einfach 'eins, zwei, drei' sein.
%Vor%gibt mir ['eins, zwei, drei], [' vier ',' fünf ',' sechs '], wo die zweite Liste von der nächsten Zeile ist. Unnötig zu sagen, dass bei Millionen von Zeilen diese Verkettung über Zeilen nicht nur falsch ist, sondern auch mein Gedächtnis zerstört.
Sie sollten sicherlich nicht in eine Zeichenkette konvertieren, bevor Sie die Liste transformieren. Probieren Sie:
%Vor% Beachten Sie auch, dass apply
die Funktion auf die Elemente der Reihe anwendet. Daher ist df['col']
in der Lambda-Funktion wahrscheinlich nicht das, was Sie wollen.
Bearbeiten : Wie in Yakyms Antwort muss keine Lambda-Funktion verwendet werden , können Sie join
direkt anwenden:
Wenn Sie col
auf str
mit astype
umwandeln, erhalten Sie eine String-Repräsentation einer Python-Liste, Klammern und alle. Sie müssen das nicht tun, nur apply
join
direkt:
Sie können Ihre Liste in str mit astype(str)
konvertieren und dann '
, [
, ]
Zeichen entfernen. Verwenden von @Yakim Beispiel:
Timing
%Vor%