pandas to_csv 函数将二维数组转换为单个字符串

1 投票
1 回答
27 浏览
提问于 2025-04-12 21:16

我正在尝试预先计算句子的嵌入(也就是把句子转化为数字表示),并想把这些嵌入存储在一个csv文件里,以便以后可以重复使用。我创建了一个Pandas数据框,并且把嵌入正确地存储为一个二维的浮点数组(在et或ea这一列)。

relevant_df.head()

enter image description here

然后我运行to_csv函数把这些数据存储到内存中。当我加载这个csv文件时,二维数组变成了一个单一的字符串。因为这个原因,我无法使用这些嵌入。

relevant_df.to_csv('relevant_docs.csv', index=False)

df = pd.read_csv('relevant_docs.csv')
df.head()

enter image description here

任何帮助都会很感激。谢谢!

1 个回答

1

CSV文件是基于文本的,它本身不支持存储多维数组。

在保存或读取CSV时,你可以使用一些序列化工具,比如json,来将你的数组转换成可以存储的格式:

import pandas as pd
import json


# arrays to JSON
relevant_df['embeddings'] = relevant_df['embeddings'].apply(json.dumps)

relevant_df.to_csv('relevant_docs.csv', index=False)

def parse_array(arr_str):
    return json.loads(arr_str)

df = pd.read_csv('relevant_docs.csv', converters={'embeddings': parse_array})

撰写回答