You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas如何删除列存储数组内的空字符串并生成目标过滤列

问题排查与解决方案

原有代码的错误点

  • return语句缩进错误:remve函数里的return写在了while循环内部,导致每次只删除1个空字符串就提前返回,没有清理完所有空值
  • 错误将列转为字符串:你调用了astype(str),把原本的列表类型转成了字符串,后续对字符串执行remove操作完全不生效
  • 列名拼写错误:你的目标列名是new_column1,代码里写的是new_columnn1多了一个n,还多了不必要的前后空格
  • 没有处理浮点数转整数的需求:你的示例结果里把末尾的float类型整数转成了int类型,原有代码没有这步逻辑

正确实现代码

如果你的new_column1列存储的是字符串格式的列表,需要先转成真实列表,完整代码如下:

import ast
import pandas as pd

def filter_list(lst):
    # 兼容字符串形式的列表输入
    if isinstance(lst, str):
        lst = ast.literal_eval(lst)
    filtered = []
    for item in lst:
        # 跳过空字符串
        if item == "":
            continue
        # 整数型浮点数转成int,和示例输出格式对齐
        if isinstance(item, float) and item.is_integer():
            filtered.append(int(item))
        else:
            filtered.append(item)
    return filtered

df['Filtered Column'] = df['new_column1'].apply(filter_list)

如果确认new_column1里的元素本身就是列表类型,删掉函数里判断字符串转列表的两行即可。

内容的提问来源于stack exchange,提问作者Cuckoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:54:04