如何在Pandas中移除JSON列表中的NaN值?
解决JSON列表中的NaN值问题
问题出在Python的NaN被json.dumps序列化为字符串"NaN",但这不符合标准JSON规范,所以会引发查询错误。可以通过以下两种方式过滤掉NaN值:
方法一:转列表前先清理DataFrame
直接用dropna()移除identifier列中值为NaN的行,再转成列表:
list_identifiers = df['identifier'].dropna().tolist() listjson = json.dumps(list_identifiers)
方法二:对已生成的列表进行过滤
如果已经得到了包含NaN的列表,用列表推导式筛选出非NaN元素:
import pandas as pd list_identifiers = df['identifier'].tolist() # 过滤NaN值 filtered_list = [item for item in list_identifiers if not pd.isna(item)] listjson = json.dumps(filtered_list)
也可以用numpy的isnan方法(需要导入numpy):
import numpy as np filtered_list = [item for item in list_identifiers if not np.isnan(item)]
这样处理后,生成的JSON列表就不会包含无效的NaN token,符合标准JSON格式。
内容的提问来源于stack exchange,提问作者Andrew Pike
相关产品推荐
相关产品推荐

