【发布时间】:2018-05-21 23:01:04
【问题描述】:
我想在 pandas 数据框中的一行中设置一个值,其中行索引具有重复值,并且日期列的值是所选索引值的最大值。
我的数据框:
Index Start_Date End_Date
A 2017-10-01 2017-10-13
B 2017-10-07 2017-10-15
B 2017-10-18 np.Nat
C 2017-10-09 2017-10-30
所以我想为 index 值“B”设置 End_Date,其中 Start_Date 是“B”的 Max
最好的方法是什么?
编辑:
我的数据框:
Index Start_Date End_Date
A 2017-10-01 2017-10-13
B 2017-10-07 2017-10-15
B 2017-10-18 np.Nat
C 2017-10-09 2017-10-30
D 2017-11-01 np.Nat
E 2017-11-03 2017-11-09
E 2017-11-13 np.Nat
通过单独的过程,我了解到 End_Date 对应于第 3 行(索引 == 'B',Start_Date == '2017-10-18 是 2017-10-25。我还分别找到了第 5 行(索引 == 'D',Start_Date == '2017-11-01' 是 2017-11-03。所以我想一次将这些值填充到 End_Date 中。因为我没有 End_Date 值最后一行 (Index = 'E', Start_Date == '2017-11-13') 将保持为空。
请注意,“D”是唯一的,而“B”不是。
输出:
我的数据框:
Index Start_Date End_Date
A 2017-10-01 2017-10-13
B 2017-10-07 2017-10-15
B 2017-10-18 2017-10-25
C 2017-10-09 2017-10-30
D 2017-11-01 2017-11-03
E 2017-11-03 2017-11-09
E 2017-11-13 np.Nat
并不是第 3 行和 2017-11-03 中的值 2017-10-25 来自另一个进程,我们可以假设它们存储在变量中 - 然后可用于填充初始数据帧以获得输出。
【问题讨论】: