2024-09-28 03:25:10 发布
网友
我有一个3列的数据框。我想根据其他列中的值在A列中删除重复项。我不知疲倦地寻找,找不到这样的解决办法
例如:
基本上,我只想在其余列都是nan的情况下删除一个副本。否则,副本可以保留
期望输出:
Family2和Family3保留在df中,因为它们没有重复项,即使两列都是nan
尝试使用双布尔值,这将为所有重复项返回true&;对于['A']之后所有为空的任何列,为true。如果这两个条件都满足,我们将使用~运算符来排除这一点,该运算符反转布尔值
~
df[~(df.duplicated(subset=['A'],keep=False) & df.iloc[:,1:].isna().all(1))] A B C 1 Family1 NaN 1234 2 Family1 1245 NaN 3 Family1 3456 78787 4 Family2 NaN NaN 5 Family3 NaN NaN
你不是很清楚。如果B列和C列都为NaN,我怀疑您希望删除A列中的任何重复项。如果是,请尝试
df[~(df.A.duplicated(keep=False)&(df.B.isna()&df.C.isna()))]
尝试使用双布尔值,这将为所有重复项返回true&;对于['A']之后所有为空的任何列,为true。如果这两个条件都满足,我们将使用
~
运算符来排除这一点,该运算符反转布尔值你不是很清楚。如果B列和C列都为NaN,我怀疑您希望删除A列中的任何重复项。如果是,请尝试
相关问题 更多 >
编程相关推荐