当前位置:  开发笔记 > 编程语言 > 正文

如何在迭代pandas数据帧时创建新列并插入行值

如何解决《如何在迭代pandas数据帧时创建新列并插入行值》经验,为你挑选了0个好方法。

我正在尝试创建一个逐行迭代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

我在这里做错了什么,我怎么能让它发挥作用?

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有