15

I have dataframe with 30 columns and want to add one new column to start.

cs95
  • 379,657
  • 97
  • 704
  • 746
Learnings
  • 2,780
  • 9
  • 35
  • 55
  • duplicate: https://stackoverflow.com/questions/18674064/how-do-i-insert-a-column-at-a-specific-column-index-in-pandas – mhc Jul 08 '22 at 22:14

1 Answers1

29

DataFrame.insert

df = pd.DataFrame({'A': ['x'] * 3, 'B': ['x'] * 3})
df

   A  B
0  x  x
1  x  x
2  x  x

seq = ['a', 'b', 'c']

# This works in-place.
df.insert(0, 'C', seq)
df

   C  A  B
0  a  x  x
1  b  x  x
2  c  x  x

pd.concat

df = pd.concat([pd.Series(seq, index=df.index, name='C'), df], axis=1)
df

   C  A  B
0  a  x  x
1  b  x  x
2  c  x  x

DataFrame.reindex + assign
Reindex first, then assign will remember the position of the original column.

df.reindex(['C', *df.columns], axis=1).assign(C=seq)

   C  A  B
0  a  x  x
1  b  x  x
2  c  x  x
cs95
  • 379,657
  • 97
  • 704
  • 746