如何选择/筛选列表为空的列?

2024-09-28 21:52:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用一个空单元格值替换脚本输出中出现的每个空列表[],但很难确定它是什么对象

因此,运行.to_excel后的数据输出如下所示:

enter image description here

现在数据最初以JSON格式存在,我正在用data_normalized = pd.json_normalize(data)对其进行规范化。我试图用filtered = data_normalized.loc[data_normalized['focuses'] == []]过滤掉之后出现的空列表,但这不起作用。我也试过filtered = data_normalized.loc[data_normalized['focuses'] == '[]']

focuses的数据类型为Object,如果这样有帮助的话。所以我一直在想如何选择这些数据

最后,我想改为运行data_normalized.replace('[]', ''),但第一个参数已更新,以便正确选择空列表


Tags: to数据对象脚本json列表data格式
3条回答

我对pandas的经验确实较少,但由于您无法识别对象,请尝试将获得的列表转换为字符串,然后将其与“[]”进行比较

例如,尝试使用这个

filtered = data_normalized.loc[string(data_normalized['focuses']) == '[]']

我认为空集被认为是丢失的数据。因此,当您加载数据集时,您可以处理它

这可能会有帮助

https://pandas.pydata.org/pandas-docs/stable/user_guide/missing_data.html

您可以尝试使用pd.DataFrame.astype(str)df转换为字符串类型,然后使用regex参数将replace转换为False:

df.astype(str).replace('[]','',regex=False)

示例:

df=pd.DataFrame({'a':[[],1,2,3]})

df.astype(str).replace('[]','',regex=False)

   a
0   
1  1
2  2
3  3

相关问题 更多 >