Python 如何从DataFrame中删除特定行?

Python 如何从DataFrame中删除特定行?,python,apache-spark,pyspark,spark-dataframe,Python,Apache Spark,Pyspark,Spark Dataframe,我只想选择数据帧df中d1或d2列device或id列中值等于0的行 我执行了以下代码: df = df.where("id=0 or device in ('d1', 'd2')") 但是,当我运行此代码时: df.select('device').distinct().rdd.map(lambda r: r[0]).collect() ..,我得到这个结果: d1 d2 d3 d4 我不明白为什么会出现d3和d4 df = df.where("id=0 or device in ('d

我只想选择数据帧
df
d1
d2
device
id
列中值等于0的行

我执行了以下代码:

df = df.where("id=0 or device in ('d1', 'd2')")
但是,当我运行此代码时:

df.select('device').distinct().rdd.map(lambda r: r[0]).collect()
..,我得到这个结果:

d1
d2
d3
d4
我不明白为什么会出现
d3
d4

df = df.where("id=0 or device in ('d1', 'd2')") 
现在,它将返回id=0的所有行或df1、df2中的设备。现在id=0可以将df3/df4作为设备

如果你想模仿df3,df4,你应该这样做

df = df.where("id=0 and device in ('d1', 'd2')") 

请显示初始数据帧。你可以这样做:
df[(df['ID']==0)|(df['device'].isin('d1','d2'))]
@cricket\u 007:是的,有些条目的
ID
等于0。@blacksite:我测试了你的解决方案,它导致了同样的问题…@dragonius向我们展示你的数据然后。。。我们不知道你在处理什么。哦,这是一个明显的细节:)非常感谢你。