【问题标题】:Subtraction/Addition from seperate rows/columns不同行/列的减法/加法
【发布时间】:2016-04-19 20:56:22
【问题描述】:

我有一个这样的数据框:

Day    Diff
137    0
185    48
249    64
139   -110

Diff列中,每当遇到负值时,我想从前一行的Day中的值中减去365,然后将该值添加到负数当前行中的Day值中.例如,在这种情况下,当遇到-110 时,我想做 365-249(249 来自上一行的Day)然后添加 139。所以 365-249 = 116 和 116 + 139 = 255。因此@ 987654327@ 将替换为 255

然后我想要的输出是:

Day    Diff
137    0
185    48
249    64
139    255

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    你可以这样做:

    In [32]: df.loc[df.Diff < 0, 'Diff'] = 365 + df.Day - df.shift().loc[df.Diff < 0, 'Day']
    
    In [33]: df
    Out[33]:
       Day   Diff
    0  137    0.0
    1  185   48.0
    2  249   64.0
    3  139  255.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多