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

如何在CSV列中存储带逗号分隔浮点值的音频采样数组?

问题:如何在CSV列中保留音频数组的逗号分隔格式?

我创建了包含WAV音频采样数组的Pandas DataFrame:

df = pd.DataFrame(data={"wavsamples": pd.Series(wavsamples), "wavsamplerate": pd.Series(wavsamplerate), "wavname": pd.Series(wavname)}, copy=False, columns = ['wavsamples','wavsamplerate','wavname'])
df.index.name = 'filenumber'

打印wavsamples列时,内容是逗号分隔的浮点数组,但用df.to_csv导出CSV后,数组里的逗号变成空格,还出现字面意义的省略号,导致后续读取丢失采样值。我知道CSV不是存储WAV数据的理想格式,但想实现:在CSV列中存储带逗号分隔的音频数组,且读取时能完整还原。


解决方案

1. 确保数组转字符串时保留完整内容

Pandas对过长数组会自动截断显示省略号,先设置全局选项避免截断:

pd.set_option('display.max_colwidth', None)

再把wavsamples列的数组转为完整字符串格式:

df['wavsamples'] = df['wavsamples'].apply(str)

2. 导出CSV时用引号包裹字段内容

CSV默认以逗号作为字段分隔符,必须把包含逗号的数组字符串用引号包裹,避免逗号被误判为字段分隔符。使用csv.QUOTE_ALL参数强制所有字段加引号:

import csv
df.to_csv('audio_data.csv', quoting=csv.QUOTE_ALL, index=True)

3. 读取CSV时还原数组

读取时用ast.literal_eval把字符串转回数组,通过converters参数指定列的转换函数:

import ast
def str_to_array(s):
    return ast.literal_eval(s)

df_read = pd.read_csv('audio_data.csv', converters={'wavsamples': str_to_array}, index_col='filenumber')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 06:55:13