我有一个pyspark数据框,偶尔会有一列与另一列匹配的错误值。它看起来像这样:
| Date | Latitude |
| 2017-01-01 | 43.4553 |
| 2017-01-02 | 42.9399 |
| 2017-01-03 | 43.0091 |
| 2017-01-04 | 2017-01-04 |
显然,最后一个纬度值是不正确的。我需要删除任何和所有这样的行。我考虑过使用.isin()
,但我似乎无法让它发挥作用。如果我试试
df['Date'].isin(['Latitude'])
我明白了:
Column<(Date IN (Latitude))>
有什么建议吗?
答案 0 :(得分:5)
是。您可以使用~
(反转运算符)使用isin()
函数排除元素。没有关于它的真实文档,但如果它能为您提供所需的输出,您可以尝试。
df = df.filter(~df['Date'].isin(df['Latitude']))
答案 1 :(得分:1)
如果您对SQL语法更熟悉,可以使用pyspark-sql
中的filter()
条件替代方法:
df = df.filter("Date NOT IN (Latitude)")
或等效使用pyspark.sql.DataFrame.where()
:
df = df.where("Date NOT IN (Latitude)")