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

SPy*_*SPy 2 python insert dataframe pandas

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

cs9*_*s95 9

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']
Run Code Online (Sandbox Code Playgroud)

# 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

DataFrame.reindex+assign
Reindex首先,然后assign将记住原始列的位置.

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
Run Code Online (Sandbox Code Playgroud)

  • 我们如何将它插入到末尾(最后一列)?为什么 `df.insert(-1, 'C', seq)` 不起作用? (3认同)