在 DataFrame 的开头(最左端)插入一列

2022-01-09 00:00:00 python pandas dataframe insert

问题描述

我有 30 列的数据框,想添加一个新列开始.

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


解决方案

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 + 分配
先reindex,然后assign会记住原列的位置.


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

相关文章