熊猫-创建具有约束的新行并用现有数据向前填充

时间:2018-09-05 20:00:59

标签: pandas dataframe

我有两个数据框。我们称它们为main和有效日期

主要:

 name    from       amount   days
 A       7/31/18    200      1
 B       7/31/18    300      1
 C       7/30/18    200      1
 D       7/27/18    100      3
 ......
 G       7/17/18    50       1
 H       7/13/18    150      4

有效日期:

 date 
 7/13/18
 7/16/18
 7/17/18
 7/27/18
 7/30/18
 7/31/18

这是复杂的地方。我需要在天数> 1的地方扩展行,但是不能使用无效的日期。

输出:

 name    from       amount   days
 A       7/31/18    200      1
 B       7/31/18    300      1
 C       7/30/18    200      1
 D       7/27/18    100      3
 ......
 G       7/17/18    50       1
 H       7/16/18    150      1
 H       7/13/18    150      3

替代(同样有效)的输出:

 name    from       amount   days   rep_days   rep_date
 A       7/31/18    200      1        1        7/31/18
 B       7/31/18    300      1        1        7/31/18
 C       7/30/18    200      1        1        7/30/18
 D       7/27/18    100      3        3        7/27/18
 ......
 G       7/17/18    50       1        1        7/17/18
 H       7/13/18    150      4        1        7/16/18
 H       7/13/18    150      4        3        7/13/18

要澄清发生了什么:

-7/27 + 3 = 7/30。但是,有效日期中没有7/27到7/30之间的日期,因此该条目将单独保留,其中7/27代表3天。

-7/13 + 4 = 7/17。有效日期中7/13到7/17之间的唯一日期是7/16。因此,将添加一个7/16条目,它将代表一天。 7/13必须代表3。其余行数据将重复。

-通过以上示例进行操作。如果7/15和7/16是有效日期,则将添加7/15和7/16条目,每个条目代表一天。 7/13代表2。其余行数据重复。

您可以假设,天数> 1,+天数将永远不会大于“发件人”列中的另一个条目。

我意识到这可能令人困惑,因此,如果您有任何疑问,请告诉我。

0 个答案:

没有答案