vaer-k
vaer-k

Reputation: 11743

concat series onto dataframe with column name

I want to add a Series (s) to a Pandas DataFrame (df) as a new column. The series has more values than there are rows in the dataframe, so I am using the concat method along axis 1.

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

This works, but the new column of the dataframe representing the series is given an arbitrary numerical column name, and I would like this column to have a specific name instead.

Is there a way to add a series to a dataframe, when the series is longer than the rows of the dataframe, and with a specified column name in the resulting dataframe?

Upvotes: 74

Views: 113557

Answers (3)

vaer-k
vaer-k

Reputation: 11743

One option is simply to specify the name when creating the series:

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

Using the name attribute when creating the series is all I needed.

Upvotes: 15

jezrael
jezrael

Reputation: 862511

You can try Series.rename:

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

Upvotes: 101

piRSquared
piRSquared

Reputation: 294218

Try:

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

Upvotes: 10

Related Questions