gpt4 book ai didi

python - 如果另一列中的值为空,则删除重复项 - Pandas

转载 作者:行者123 更新时间:2023-12-04 00:02:03 26 4
gpt4 key购买 nike

我拥有的:
df

Name |Vehicle
Dave |Car
Mark |Bike
Steve|Car
Dave |
Steve|
我想从 Name 列中删除重复项,但前提是 Vehicle 列中的相应值为 null。
我知道我可以使用
 df.dropduplicates(subset=['Name']) 
Keep =要么 'First' or 'Last'但我正在寻找的是一种从 Name 中删除重复项的方法 Vehicle所在列对应的值列是 null .所以基本上,保留 Name如果 Vehicle列是 不是 null 并删除其余部分。如果名称没有重复,则即使 Vehicle 中的相应值也保留该行一片空白。
非常感谢

最佳答案

我认为您需要按位 AND 链接 2 个掩码( & ) 与 Series.notna Series.duplicated :

m1 = df['Vehicle'].notna()
m2 = ~df['Name'].duplicated()

df1 = df[m1 & m2]
print (df1)
Name Vehicle
0 Dave Car
1 Mark Bike
2 Steve Car

如果需要单独进行这些操作 - 首先删除所有 NaN 行,然后删除重复项以避免在 NaN 中测试重复项s 行(如有必要):
df2 = df.dropna(subset=['Vehicle']).drop_duplicates('Name')
print (df2)
Name Vehicle
0 Dave Car
1 Mark Bike
2 Steve Car

关于python - 如果另一列中的值为空,则删除重复项 - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59532750/

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