作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Pandas 数据框,如下所示:
ID, Customer, Status, Score, Size
01, Cust-A, NaN, 100, A
01, Cust-A, Valid, 100, A
02, Cust-B, Invalid, 80, B
02, Cust-B, Invalid, NaN, B
03, Cust-C, Valid, 95, C
04, Cust-D, Invalid, 76, NaN
04, Cust-D, NaN, 76, NaN
...
等等。
如何删除正确行?
如果是 ID-01,我想删除第一行;如果是 ID-04,我想删除 ID-02 的第二行;如果是 ID-04,我想保留第一行,因为它的行数较少NaN
最佳答案
一种选择是计算每个 ID 的缺失值总数,提取最小缺失值的索引(使用 idxmin())并使用该索引对原始数据框进行子集化:
df.loc[df.groupby('ID', as_index=False).apply(lambda g: g.isnull().sum(axis=1).idxmin())]
# ID Customer Status Score Size
#1 1 Cust-A Valid 100.0 A
#2 2 Cust-B Invalid 80.0 B
#4 3 Cust-C Valid 95.0 C
#5 4 Cust-D Invalid 76.0 NaN
关于Python Pandas : How to drop the *correct* duplicate row?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948459/
我是一名优秀的程序员,十分优秀!