T_T*_*T_T 2 python function dataframe pandas
在下面的代码中,我创建了一个函数来返回一个DataFrame,其中一个新的列new_col具有一个周期移位值ori_col.但是,输出的新列具有名称new_col而不是B.我在这里错过了什么?
import pandas as pd
def 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
Run Code Online (Sandbox Code Playgroud)
这给了
A new_col
0 10 NaN
1 11 10.0
2 12 11.0
Run Code Online (Sandbox Code Playgroud)
您需要将参数解压缩为assign使用字典.只需拥有assign(new_col=shift_l)列名称即可new_col.尝试:
dframe.assign(**{new_col: shift_1})
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用:
dframe[new_col] = shift_1
Run Code Online (Sandbox Code Playgroud)