【发布时间】:2022-11-13 14:50:40
【问题描述】:
我有多个文件 .csv,其中包含训练/验证过程的结果。每个模型一个文件。文件中的每一行都包含以下信息:Epoch,loss_train,acc_train,loss_val,acc_val,time。每个文件名都包含有关模型参数的信息。
我需要构建一个包含每个文件的最后一行和文件名的数据框。
在 Python 中使用readlines(),我设法获得了包含所需信息的字符串列表。列表部分示例:
'"0_0_2_200_0.4.csv",66,67,0.42319968342781067,0.8733666720438781,0.9848468899726868,0.7532656023222061,0.2503340244293213\n', '"0_0_2_200_0.5.csv",74,75,0.41233333945274353,0.8760283916760768,0.9206098318099976,0.7656023222060958,0.2535388469696045\n',
如何将此列表放入数据框中?
要将这个列表列表转换为数据框,我尝试了:
df = pd.DataFrame.from_records(results, columns = ["filename", "row_number", "Epoch", "loss_train", "acc_train","loss_val", "acc_val", "time"])
我有以下错误:ValueError:传递了 8 列,传递的数据有 124 列. 我试过了:
df2 = pd.DataFrame(results,
columns=["filename", "row_number", "Epoch", "loss_train", "acc_train","loss_val", "acc_val", "time"])
错误是:ValueError:传递值的形状为 (110, 1),索引暗示 (110, 8).
df3 = pd.DataFrame(results)
结果变成只有一列的数据框。 我试图将列表写入 csv 文件:
file = open('final_results.csv', 'w+', newline ='')
with file:
write = csv.writer(file, delimiter=',')
write.writerows(results)
但在生成的文件中,所有字符都被分成不同的列:
"""",0,_,0,_,2,_,2,0,0,_,0,.,4,.,c,s,v,"""",",",6,6,",",6,7,",",0,.,4,2,3,1,9,9,6,8,3,4,2,7,8,1,0,6,7,",",0,.,8,7,3,3,6,6,6,7,2,0,4,3,8,7,8,1,",",0,.,9,8,4,8,4,6,8,8,9,9,7,2,6,8,6,8,",",0,.,7,5,3,2,6,5,6,0,2,3,2,2,2,0,6,1,",",0,.,2,5,0,3,3,4,0,2,4,4,2,9,3,2,1,3,"
【问题讨论】:
标签: python pandas list dataframe export-to-csv