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

如何移除pandas DataFrame中列表字符串的单引号

Pandas去除列表字段字符串外层单引号方案

场景说明

需要处理DataFrame的relations字段,移除列表内字符串外层包裹的单引号,原始数据与期望效果如下:

原始数据示例

name      relations
0   mary      ['andrew', 'jane']
1   jack      ['priscilla', 'mary']
2   jason     ['howard', 'jackie']

期望输出效果

name      relations
0   mary      [andrew, jane]
1   jack      [priscilla, mary]
2   jason     [howard, jackie]

分场景实现

场景1:relations列存储的是原生Python列表对象

这种场景下看到的单引号是pandas默认打印时自动给字符串元素加的标识,并不是数据本身自带的内容,不需要修改原始数据,只要自定义展示格式即可:

import pandas as pd

# 构造示例数据
df = pd.DataFrame({
    'name': ['mary', 'jack', 'jason'],
    'relations': [['andrew', 'jane'], ['priscilla', 'mary'], ['howard', 'jackie']]
})

# 自定义列格式化规则,输出时自动去掉单引号
print(df.to_string(
    formatters={'relations': lambda item: f"[{', '.join(item)}]"}
))

这种方式不会破坏列的列表结构,后续做列表筛选、元素展开、成员判断等操作都不受影响。

场景2:relations列存储的是字符串格式的列表

如果列里的值是类似"['andrew', 'jane']"的字符串,单引号是字符串本身的内容,直接做字符串替换即可:

# 替换掉字符串内所有单引号
df['relations'] = df['relations'].str.replace("'", "")

如果后续需要把该列转为原生列表结构,替换完成后再做解析即可。

注意:不要为了消除展示的单引号直接把原生列表列强转为字符串,会丢失列表的结构化属性,影响后续数据处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:57:12