我试图构建一个列表理解,它有条件不导入nan值,但没有运气。下面是当前代码以及结果输出。什么条件将从列表中删除nans?
def generate_labels(filtered_df, columnName):
return[
{'label': i, 'value': i} for i in
filtered_df[columnName].unique()
]
generate_labels(df, 'Region')
#Output
[{'label': 'Americas', 'value': 'Americas'},
{'label': 'EMEA', 'value': 'EMEA'},
{'label': nan, 'value': nan},
{'label': 'APAC ', 'value': 'APAC '}]
答案 0 :(得分:4)
def generate_labels(filtered_df, columnName):
return[
{'label': i, 'value': i} for i in filtered_df[columnName].dropna().unique()
]
答案 1 :(得分:1)
您可以在列表推导表达式中添加条件。类似的东西:
import math
def generate_labels(filtered_df, columnName):
return[
{'label': i, 'value': i} for i in
filtered_df[columnName].unique()
if not math.isnan(i)
]
您可以通过多种方式检查值是否为nan。如果您愿意,也可以使用numpy版本。