在下面的代码中,我创建了一个函数来返回一个带有一个新列的数据帧,该列new_col的周期移位值为ori_col。但是,输出的新列具有名称new_col而不是B。我在这里缺少什么?import pandas as pddef add_col_diff(dframe, ori_col, new_col): shift_1 = dframe[ori_col].shift(1) return dframe.assign(new_col=shift_1)data = {'A': [10, 11, 12]}df = pd.DataFrame.from_dict(data)df = add_col_diff(df, 'A', 'B')df这给 A new_col0 10 NaN1 11 10.02 12 11.0
1 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
assign
将关键字参数设置为列名。简单地assign(new_col=shift_l)
将创建一个名称为 的列new_col
。关键字参数不会被评估为变量。
如果要使用变量来定义列名,可以从字典中解压缩。尝试:
dframe.assign(**{new_col: shift_1})
另一种方法是使用:
dframe[new_col] = shift_1
添加回答
举报
0/150
提交
取消