Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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 如果另一列中的值为null-0,则删除“复制”_Python_Pandas_Drop Duplicates - Fatal编程技术网

Python 如果另一列中的值为null-0,则删除“复制”

Python 如果另一列中的值为null-0,则删除“复制”,python,pandas,drop-duplicates,Python,Pandas,Drop Duplicates,我所拥有的: df 我想删除Name列中的重复项,但前提是Vehicle列中的对应值为null。 我知道我可以用 df.dropduplicates(subset=['Name']) 使用Keep=或'First'或'Last'但我要寻找的是一种从Name列中删除重复项的方法,其中Vehicle列的相应值为null。因此,基本上,如果车辆列为非空,则保留名称,并删除其余部分。如果名称没有重复项,则保留该行,即使Vehicle中的相应值为空 非常感谢我认为您需要具有按位和(&)的链2掩码,

我所拥有的:

df


我想删除Name列中的重复项,但前提是Vehicle列中的对应值为null。 我知道我可以用

 df.dropduplicates(subset=['Name']) 
使用
Keep=
'First'或'Last'
但我要寻找的是一种从
Name
列中删除重复项的方法,其中
Vehicle
列的相应值为
null
。因此,基本上,如果
车辆
列为空,则保留
名称
,并删除其余部分。如果名称没有重复项,则保留该行,即使
Vehicle
中的相应值为空


非常感谢

我认为您需要具有按位
&
)的链2掩码,以及:

如果要单独执行这些操作,请先删除所有NaN行,然后删除重复项,以避免在
NaN
s行中测试重复项(如有必要):


这将过滤掉
None
和空值(如果存在任何非
None
或非空值),只保留
车辆遇到的第一个值

将熊猫作为pd导入
df=pd.DataFrame({“Name”:[“Dave”,“Mark”,“Steve”,“Dave”,“Steve”],“Vehicle:[“Car”,“Bike”,“Car”,None,”]))
res=df.sort_值(“Vehicle”,升序=False).groupby(“Name”)[“Vehicle”].first().reset_索引()
输出:

命名车辆
0戴夫汽车
1马克自行车
2史蒂夫汽车

。伟大的逻辑!非常感谢。
Dave |Car
Mark |Bike
Steve|Car
Dave |
Steve|
 df.dropduplicates(subset=['Name']) 
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
df2 = df.dropna(subset=['Vehicle']).drop_duplicates('Name')
print (df2)
    Name Vehicle
0   Dave     Car
1   Mark    Bike
2  Steve     Car