2016-08-19 2 views
13

Ich möchte eine Serie (s) zu einem Pandas DataFrame (df) als neue Spalte hinzufügen. Die Serie hat mehr Werte, als es Zeilen in dem Datenrahmen, so dass ich bin mit dem concat Verfahren entlang der Achse 1.concat series auf Datenframe mit Spaltenname

df = pd.concat((df, s), axis=1)

Dies funktioniert, aber die neue Spalte des Datenrahmen die Serie darstellt, wird ein beliebige gegebene numerischer Spaltenname, und ich möchte, dass diese Spalte stattdessen einen bestimmten Namen hat.

Gibt es eine Möglichkeit, eine Serie zu einem Datenrahmen hinzuzufügen, wenn die Reihe länger als die Zeilen des Datenrahmens und mit einem angegebenen Spaltennamen im resultierenden Datenrahmen ist?

Antwort

12

Sie können Series.rename versuchen:

df = pd.concat((df, s.rename('col')), axis=1) 
+0

Dies funktioniert auch, und funktioniert auch, wenn ich mit einer Serie arbeite, die bereits in einigen vorherigen Schritten erstellt wurde, also werde ich voran gehen und dies nur als die Antwort markieren. – vaerek

1

Versuchen:

df = pd.concat((df, s.rename('CoolColumnName')), axis=1) 
3

Natürlich nach vielen Minuten von diesem Versuch, habe ich sofort an meine eigene Antwort herausgefunden, nachdem die Frage der Veröffentlichung. Die Antwort ist einfach den Namen angeben, wenn die Serie zu schaffen:

example_scores = pd.Series([1,2,3,4], index=['t1', 't2', 't3', 't4'], name='example_scores')

Mit dem Namensattribut, wenn die Serie schafft, ist alles, was ich brauchte.