在下面的代碼中,我創建了一個函數來返回一個帶有一個新列的數據幀,該列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
提交
取消