我正在尝试创建一个逐行迭代pandas数据帧的函数.我想基于其他列的行值创建一个新列.我的原始数据框可能如下所示:
df: A B 0 1 2 1 3 4 2 2 2
现在我想在每个索引位置创建一个填充了列A - 列B的行值的新列,以便结果如下所示:
df: A B A-B 0 1 2 -1 1 3 4 -1 2 2 2 0
我工作的解决方案,但只有当我不在函数中使用它时:
for index, row in df.iterrows(): print index df['A-B']=df['A']-df['B']
这给了我想要的输出,但当我尝试将它用作函数时,我收到一个错误.
def test(x): for index, row in df.iterrows(): print index df['A-B']=df['A']-df['B'] return df df.apply(test) ValueError: cannot copy sequence with size 4 to array axis with dimension 3
我在这里做错了什么,我怎么能让它发挥作用?