python Pandas读一行跨多行的csv

k5ifujac  于 2023-01-16  发布在  Python
关注(0)|答案(1)|浏览(170)

我的csv开头是这样的:

,index,spotify_id,artist_name,track_name,album_name,duration_ms,lyrics,lyrics_bert_embeddings
0,0,5Jk0vfT81ltt2rYyrWDzZ5,Hundred Waters,Xtalk - Kodak to Graph Remix,The Moon Rang Like a Bell,285327,not fetched,"[ 0.00722605 -0.23726921  0.15163635 -0.28774077  0.07081255  0.26606813

每一行都像这样在新的一行中结束:

0.03439684 -0.29289168  0.13590978  0.2332756  -0.24305075  0.2034984 ]"

这些值来自一个用np.array2string()编码的大numpy数组,并在csv中跨越多行。
当使用pd.read_csv时抛出"ParserError: Error tokenizing data. C error: EOF inside string starting at row 90607".当使用参数engine="python"时抛出"ParserError: unexpected end of data"。当使用分隔符sep= '\t+'时,它只是将每一行放在 Dataframe 的新行中。当通过使用with open(file_path)来使用csv.reader,然后遍历每一行时,与sep='\t+'发生相同的情况。
是否有一种方法可以自动将每一行追加到它所属的原始行中,或者我必须手动对此进行预处理?

kyks70gy

kyks70gy1#

我可以看到您的csv数据中有字符串。您可以尝试使用带值“QUOTE_NONE”的引号参数,如下所示(Pandas ParserError EOF character when reading multiple csv files to HDF5),

import csv
csvfile = 'Path/to/csv/file'
pd.read_csv(csvfile,quoting=csv.QUOTE_NONE)

相关问题