I haben eine spezifische Reihe von Datensätzen, die in der folgenden allgemeinen Form kommen:Wie reihenweise mehrere Spalten mit Strings verketten?
import pandas as pd
import random
df = pd.DataFrame({'n': random.sample(xrange(1000), 3), 't0':['a', 'b', 'c'], 't1':['d','e','f'], 't2':['g','h','i'], 't3':['i','j', 'k']})
Die Anzahl der tn Säulen (t0, t1, t2 ... tn) variiert in Abhängigkeit von der Datenmenge abhängig, ist aber immer < 30. Mein Ziel Inhalt der tn Spalten für jede Zeile zu verschmelzen, so dass ich dieses Ergebnis erzielen (beachten Sie, dass aus Gründen der Lesbarkeit muss ich die Leerzeichen zwischen den Elementen halten):
df['result'] = df.t0 +' '+df.t1+' '+df.t2+' '+ df.t3
So weit so gut. Dieser Code mag einfach sein, aber er wird ungeschickt und unflexibel, sobald ich einen anderen Datensatz erhalte, wo die Anzahl der Spalten steigt. Hier kommt meine Frage:
Gibt es eine andere Syntax, um den Inhalt über mehrere Spalten hinweg zusammenzuführen? Etwas Agnostiker auf die Anzahl Spalten, ähnlich:
df['result'] = ' '.join(df.ix[:,1:])
Grundsätzlich mag ich das gleiche wie die OP in dem unten stehenden Link zu erreichen, aber mit Leerzeichen zwischen den Saiten: R - concatenate row-wise across specific columns of dataframe
Versuchen Sie Folgendes: http://stackoverflow.com/a/32529152/5276797 – IanS
Perfekt! Die von Russ vorgeschlagene Lösung ist flexibel und einfach. Danke @IanS für das Aufzeigen dieser Antwort! – EmEs