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

Python中如何将CSV读取后DataFrame的字符串数组格式转换为原格式

解决CSV读取后列表格式变为字符串的问题

这问题我之前处理CSV数据时也踩过坑!CSV是纯文本格式,所以当你把DataFrame里的列表类型数据存进去时,pandas会自动把它转成字符串形式,读回来自然就不是原来的列表对象了。下面给你两种靠谱的转换方法,帮你把格式转回去适配你的自定义函数:

方法一:用ast.literal_eval安全解析推荐

这是最稳妥的方式,ast.literal_eval会安全地把字符串解析成对应的Python原生对象(比如列表、字典),比直接用eval()安全得多,不用担心恶意代码执行的问题。

步骤很简单:

  1. 导入ast模块
  2. 对nodes列应用ast.literal_eval

示例代码:

import pandas as pd
import ast

# 读取CSV文件
df = pd.read_csv("your_data.csv")

# 将nodes列的字符串转回列表
df["nodes"] = df["nodes"].apply(ast.literal_eval)

# 验证类型,输出应该是<class 'list'>
print(type(df["nodes"][0]))

方法二:字符串手动分割适合格式完全规整的情况

如果你的nodes列字符串格式非常固定(比如都是['X','Y']这种结构),也可以用字符串处理的方式来转换:

示例代码:

import pandas as pd

df = pd.read_csv("your_data.csv")

# 去掉首尾的[],按逗号分割,再去掉每个元素的单引号
df["nodes"] = df["nodes"].str.strip("[]")\
                         .str.split(", ")\
                         .apply(lambda x: [item.strip("'") for item in x])

不过这种方法局限性比较大,如果字符串里出现特殊字符(比如元素里包含逗号或者引号),就会出错,所以优先推荐第一种方法。

转换完成后,你的nodes列就回到初始的列表格式了,自定义函数应该就能正常工作啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 14:22:29