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

如何将Pandas DataFrame中的冻结集合字符串转换为frozenset类型

Pandas字符串格式frozenset转原生冻结集合解决方案

你可以使用Python标准库ast模块的literal_eval方法完成转换,该方法可以安全识别Python字面量格式的字符串并转换为对应原生对象,比直接调用eval安全性更高,不会执行字符串中的恶意代码。

基础转换步骤

  • 导入ast模块
  • 对需要处理的DataFrame列应用ast.literal_eval方法

示例代码:

import pandas as pd
import ast

# 示例DataFrame,需替换为你实际的列名
df = pd.DataFrame({
    'target_col': ["frozenset({' ABC'})", "frozenset({'DEF', '123'})"]
})

# 执行转换
df['target_col'] = df['target_col'].apply(ast.literal_eval)

转换完成后你可以通过以下代码验证类型:

print(type(df.loc[0, 'target_col']))
# 输出:<class 'frozenset'>

脏数据兼容处理

如果你的数据集存在格式不规范的异常值,可以用带异常捕获的自定义函数处理,避免转换中断:

def safe_convert(s):
    try:
        convert_res = ast.literal_eval(s)
        # 仅返回类型为frozenset的结果,异常场景返回None可根据需求调整
        return convert_res if isinstance(convert_res, frozenset) else None
    except (ValueError, SyntaxError, TypeError):
        return None

df['target_col'] = df['target_col'].apply(safe_convert)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:06:00