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

如何用Python和Pandas移除DataFrame列中的\n与空字符串

解决方法

完整代码实现

import pandas as pd
import ast

# 构造示例DataFrame(模拟你的原始数据)
data = {
    'column': [
        '[\n "Hello" \n]',
        '[\n "Hello", \n "Hi"\n]',
        '[\n "Hello", \n "Hi"\n, \n ""\n]',
        '[\n ""\n, \n "Hello", \n "Hi"\n]',
        '[\n "Hello" \n, \n ""\n]',
        '[\n ""\n, \n "Hello" \n]'
    ]
}
df = pd.DataFrame(data)

# 定义清洗函数
def clean_list_str(s):
    # 移除所有换行符和多余空格
    cleaned_str = s.replace('\n', '').replace(' ', '')
    # 将字符串转为Python列表(用ast.literal_eval比eval更安全)
    raw_list = ast.literal_eval(cleaned_str)
    # 过滤空字符串
    filtered_list = [item for item in raw_list if item != '']
    # 转回目标格式的字符串
    return str(filtered_list)

# 应用清洗函数到目标列
df['column'] = df['column'].apply(clean_list_str)

# 查看结果
print(df)

处理逻辑说明

  1. 清理字符串格式:先把原始字符串里的\n和多余空格全部移除,让字符串变成紧凑的列表格式(比如'[\n "Hello" \n]'会变成'["Hello"]')。
  2. 转换为列表对象:用ast.literal_eval()把字符串形式的列表转成真实的Python列表,避免直接用eval()带来的安全风险。
  3. 过滤空元素:通过列表推导式筛掉列表里的空字符串""。
  4. 转回目标格式:把处理后的列表重新转为字符串,匹配你需要的输出样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:15:34