Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python熊猫:如何删除*正确*重复行?_Python_Pandas_Data Cleaning - Fatal编程技术网

Python熊猫:如何删除*正确*重复行?

Python熊猫:如何删除*正确*重复行?,python,pandas,data-cleaning,Python,Pandas,Data Cleaning,我有一个熊猫数据框,看起来像: 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, C

我有一个熊猫数据框,看起来像:

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-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

如果某些ID有相同数量的缺失值(或没有缺失值),该怎么办?我不知道,这是一个很好的一般性问题。在我正在清理的数据集中,没有任何东西都有值这样的条件。我所看到的是,当存在重复项时,有一行缺少一个或多个值,并且相同的列具有相同的值。但你的问题很好。