numpy Python忽略非空值后的DataFrame行

mnemlml8  于 2022-11-10  发布在  Python
关注(0)|答案(1)|浏览(123)

我有这样的DataFrame:

date  unique_id  order_id
0  2022-09-20        111      NULL
1  2022-09-10        111      NULL
2  2022-08-10        111  2660a139
3  2022-08-08        111      NULL
4  2022-08-07        111      NULL
5  2022-08-04        222      NULL
6  2022-07-31        222  e61d1e7d
7  2022-07-20        222      NULL

是否有可能清理数据,以便根据唯一ID消除非NULL值之后具有NULL ORDER_ID的行?结果应该是这样的:

date  unique_id  order_id
0  2022-08-10        111  2660a139
1  2022-08-08        111      NULL
2  2022-08-07        111      NULL
3  2022-07-31        222  e61d1e7d
4  2022-07-20        222      NULL

谢谢!

ttcibm8c

ttcibm8c1#

GroupBy.cummaxSeries.notna一起使用:

df = df[df['order_id'].notna().groupby(df['unique_id']).cummax()]

# laternative

# df = df[df['order_id'].ne('NULL').groupby(df['unique_id']).cummax()]

print (df)
         date  unique_id  order_id
2  2022-08-10        111  2660a139
3  2022-08-08        111       NaN
4  2022-08-07        111       NaN
6  2022-07-31        222  e61d1e7d
7  2022-07-20        222       NaN

相关问题