在DataFrame中生成新列的矢量化解决方案,它依赖于现有列的条件以及新列本身

时间:2017-07-25 16:49:24

标签: python-3.x pandas

我当前的数据帧数据如下:

df=pd.DataFrame([[1.4,3.5,4.6],[2.8,5.4,6.4],[7.8,6.5,5.8]],columns=['t','i','m'])

    t   i   m
0  14  35  46
1  28  54  64
2  28  34  64
3  78  65  58

我的目标是在df上应用矢量化操作,条件如下(伪代码):

新的答案列以值1开头。

For row in df.itertuples():
    if (m > i) & (answer in row-1 is an odd number):
        answer in row = answer in row-1 + m
    elif (m > i):
        answer in row = answer in row-1 - m
    else:
        answer in row = answer in row-1

所需的输出如下:

    t   i   m  answer
0  14  35  46       1
1  28  54  59      60
2  78  12  58       2
3  78  91  48       2

任何优雅的解决方案都将受到赞赏。

0 个答案:

没有答案