pandas-如果不同列中的值相同,如何替换下一行中的nan值?

vaqhlq81  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(287)

这个问题在这里已经有了答案

Pandas群回填柱(1个答案)
17小时前关门了。
我的df看起来像吼叫

ID Name     SupervisorID    Date
1  John     NaN             2021-02
1  John     123             2021-03
2  Thomas   NaN             2021-02
2  Thomas   234             2021-03
3  Ann      NaN             2021-02
3  Ann      567             2021-03
4  Alice    NaN             2021-03
5  Mark     324             2021-03

我需要填写另一个月的previus id(我只有两个日期:2021-02和2021-03)。因此,如果supervisorid是nan和id,那么id和name的name列是相同的,它应该用previus id填充supervisorid,因此df应该如下所示:

ID Name     SupervisorID    Date
1  John     123             2021-02
1  John     123             2021-03
2  Thomas   234             2021-02
2  Thomas   234             2021-03
3  Ann      564             2021-02
3  Ann      567             2021-03
4  Alice    NaN             2021-03
5  Mark     324             2021-03

我希望,这是清楚的。
致以最诚挚的问候,感谢您的帮助!

vhipe2zx

vhipe2zx1#

如果每个组合有不同的月份 ID, Name 使用 GroupBy.bfill :

df['SupervisorID'] = df.groupby(['ID','Name'])['SupervisorID'].bfill()

相关问题