如何用更优雅的单行代码替换Pandas DataFrame的列(含新列名)
回答
有几种简洁的单行实现方式,直接看方案:
- 链式调用
drop+assign
这是最直观的单行写法,先删除旧列再添加新列:
df1 = df.drop(columns=['Age']).assign(Marks=marks)
assign+drop的顺序调换
也可以先添加新列再删除旧列,效果完全一致:
df1 = df.assign(Marks=marks).drop(columns=['Age'])
- 原地修改原DataFrame(无需保留原数据)
如果不需要保留原始的df,可以直接在原对象上操作,一行搞定:
df['Marks'], df.pop('Age') = marks, None
这里df.pop('Age')会直接移除旧列,我们用None接收返回值即可,同时完成新列的赋值。
以上方法都能实现你需要的替换列效果,代码更紧凑简洁。
内容的提问来源于stack exchange,提问作者hbaromega
相关产品推荐
相关产品推荐

