我有一个dataframe df 1:
| B| B |
| --| ------------ |
| 测试1| test 1 |
| 测试3| test 3 |
| 测试2| test 2 |
| 测试4| test 4 |
| 测试5| test 5 |
我只想为列A保留3个值:null、AAAA和BBBB我做了过滤器:
df2= df1.select(col('*'),F.when(~col("A").isin(['AAAA','BBBB']),"null")
.otherwise(col("A")).alias("C")
)
字符串
我想要这个:
| C类|B| B |
| --|--| ------------ |
| 零|测试1| test 1 |
| 零|测试3| test 3 |
| AAAA|测试2| test 2 |
| BBBB|测试4| test 4 |
| 零|测试5| test 5 |
但是我得到的是不同的,我丢失了所有值等于AAAA的行:
| C类|B| B |
| --|--| ------------ |
| 零|测试1| test 1 |
| 零|测试3| test 3 |
| BBBB|测试4| test 4 |
| 零|测试5| test 5 |
你知道是什么问题吗?谢啦,谢啦
1条答案
按热度按时间4dbbbstv1#
这是用于过滤值为
[AAAA, BBBB]
和NULL
的列A
的有效代码字符串
您不是在筛选列,而是在基于
A
的值创建一个新列。