gpt4 book ai didi

python - Pandas:按 ID 分组并删除包含最多 NaN 值的行

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:46 24 4
gpt4 key购买 nike

我有一个 Pandas DataFrame,其中有几行具有相同的 ID。我想按 ID 对它们进行分组,并检查哪一行包含的 NaN(或零)值最少,然后删除其余的。

我希望我的最终 DataFrame 只包含每个 Id 一行和最大数量的信息,而不是每行迭代一行。

如果两行或更多行包含最少量的 NaN(或零)值,我将应用我尚未定义的第二个 bool 过滤器。它会是这样的:

初始表:

     ID      A      B      C      D      E
1 4 56 NaN 890 aaa 907
2 4 NaN NaN 890 aaa 907
3 7 89 78 754 bbb 1
4 7 89 NaN 754 bbb 1
5 7 89 78 754 bbb NaN

决赛 table :

     ID      A      B      C      D      E
1 4 56 NaN 890 aaa 907
3 7 89 78 754 bbb 1

最佳答案

下面是将每行的 NaN 数量相加并在每组中采用 idxmin:

df.loc[df.isna().sum(1).groupby(df.ID).idxmin()]

ID A B C D E
1 4 56.0 NaN 890 aaa 907.0
3 7 89.0 78.0 754 bbb 1.0

关于python - Pandas:按 ID 分组并删除包含最多 NaN 值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58007020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com