mar*_*mos 3 python dataframe pyspark
我有一个结构类似于以下内容的数据框:
col1, col2, col3, col4
A,A,A,A
A,B,C,D
B,C,A,D
A,C,A,D
A,F,A,A
A,V,B,A
Run Code Online (Sandbox Code Playgroud)
我想要的是“删除”同时满足所有列条件的行。例如,同时删除col1 == A
行col2 == C
。请注意,在这种情况下,唯一应该删除的行是"A,C,A,D"
唯一同时满足两个条件的行。因此,数据框应该如下所示:
col1, col2, col3, col4
A,A,A,A
A,B,C,D
B,C,A,D
A,F,A,A
A,V,B,A
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的是:
# spark library import
import pyspark.sql.functions as F
df = df.filter(
((F.col("col1") != "A") & (F.col("col2") != "C"))
)
Run Code Online (Sandbox Code Playgroud)
这个并没有按照我想要的方式进行过滤,因为它删除了仅满足一个条件的所有行,例如col1 == "A"
or col2 == "C"
,返回:
col1, col2, col3, col4
B,C,A,D
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决这个问题吗?
谢谢
结合这两个条件并执行NOT
:
cond = (F.col('col1') == 'A') & (F.col('col2') == 'C')
df.filter(~cond)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8515 次 |
最近记录: |