【发布时间】:2020-04-18 08:08:20
【问题描述】:
我想动态过滤输入数据框中的空值,因为值列可以来自 value(1) ... value(n)
输入数据框:
|dim1|dim2|TR_LIST|value1|value2|
| 101| 201|MTD0001| 1| 21|
| 101| 201|MTD0001| null| null|
| 101| 201|MTD0001| null| null|
| 102| 202|MTD0002| null| null|
| 102| 202|MTD0002| 2| 22|
| 102| 202|MTD0002| null| null|
| 103| 203|MTD0003| null| null|
| 103| 203|MTD0003| null| null|
| 103| 203|MTD0003| 3| 23|
输出数据框:
|dim1|dim2|TR_LIST|value1|value2|
| 101| 201|MTD0001| 1| 21|
| 102| 202|MTD0002| 2| 22|
| 103| 203|MTD0003| 3| 23|
我尝试在数据帧的过滤器方法中使用 for 循环进行过滤,但出现类似错误(它应该是 str 或 column)。
我尝试使用的命令行:
list_valiue = [value1, value2] #Here i will be passing value columns as a list
df.filter(df.value.isNotNull() for value in list_value) #Throwing an error
我也尝试了另一种方式:
df.where(" AND ".join([df.%s.isNotNull())"%(li) for li in list_value])).show() # Even here I'm getting an error
请提供我在上述查询中可能犯的任何错误
【问题讨论】: