如何在pandas中为现有DataFrame添加新列?assign方法执行后列未添加问题
核心问题
pandas 的 assign() 方法默认不会修改原 DataFrame,而是返回一个添加了新列的全新 DataFrame 对象。你当前的代码没有接收该方法的返回值,原 df 自然不会有任何变更。
修复方案
方案1:接收 assign 返回值
适合需要做链式数据处理的场景,不会破坏连续调用的逻辑:
import pandas as pd df = pd.DataFrame(data = {"test":["mkt1","mkt2","mkt3"], "test2":["cty1","cty2","cty3"]}) print("Before",df.columns) # 把assign返回的新DataFrame赋值给原变量覆盖 df = df.assign(test3="Hello") print("After",df.columns)
方案2:直接原地新增列
直接对原DataFrame做修改,写法更简洁:
df["test3"] = "Hello"
修改后运行输出结果如下:
Before Index(['test', 'test2'], dtype='object') After Index(['test', 'test2', 'test3'], dtype='object')
内容的提问来源于stack exchange,提问作者Ankit Tiwari
相关产品推荐
相关产品推荐

