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

Pandas to_csv将二维数组转为字符串的问题求助

解决CSV存储/读取句子嵌入向量的格式问题

CSV格式本身不支持直接存储数组类型,所以你用to_csv保存时,二维数组会被自动转为字符串格式。下面提供几种可行的解决办法:

方法1:读取时将字符串转回数组

利用Python的ast模块解析字符串格式的数组,把它还原为浮点型二维数组:

import ast
import pandas as pd

# 读取CSV文件
df = pd.read_csv('relevant_docs.csv')
# 将et列的字符串转成数组
df['et'] = df['et'].apply(ast.literal_eval)
# 同理处理ea列
df['ea'] = df['ea'].apply(ast.literal_eval)

如果数据中存在空值,可添加判断避免报错:

def str_to_array(s):
    if pd.isna(s):
        return None
    return ast.literal_eval(s)

df['et'] = df['et'].apply(str_to_array)

方法2:存储前将数组序列化为JSON字符串

在保存CSV前,先把数组列转为JSON格式的字符串,读取时再解析回数组:

import json
import pandas as pd

# 存储前序列化数组列
relevant_df['et'] = relevant_df['et'].apply(json.dumps)
relevant_df['ea'] = relevant_df['ea'].apply(json.dumps)
relevant_df.to_csv('relevant_docs.csv', index=False)

# 读取时解析JSON字符串
df = pd.read_csv('relevant_docs.csv')
df['et'] = df['et'].apply(json.loads)
df['ea'] = df['ea'].apply(json.loads)

方法3:用Pickle直接保存DataFrame(推荐)

如果不需要CSV的可读性,Pickle可以完整保留DataFrame的所有数据类型(包括数组),无需额外转换:

import pandas as pd

# 保存为Pickle文件
relevant_df.to_pickle('relevant_docs.pkl')

# 读取Pickle文件
df = pd.read_pickle('relevant_docs.pkl')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 06:42:11