将列附加到 Pandas DataFrame 而不改变原始数据

Vic*_*lex 3 python dataframe pandas

当我们需要向 DataFrame 添加一列时,我们通常会这样写:

df['newcol'] = 123
Run Code Online (Sandbox Code Playgroud)

这会更改(变异)原始 df 对象,这并不总是需要的。

什么是快速而惯用的方法来做到这一点?这是一种选择,但它比上述分配慢了大约 10。

df2 = concat([df, DataFrame(123, index=df.index, columns=['newcol'])], axis=1)
Run Code Online (Sandbox Code Playgroud)

Max*_*axU 7

copy()怎么样:

df2 = df.copy()
df2['newcol'] = 123
Run Code Online (Sandbox Code Playgroud)


Aiv*_*var 4

您可以使用分配来做到这一点:

df2 = df.assign(newcol=123)
Run Code Online (Sandbox Code Playgroud)