换行符有时在.csvPython / Pandas中无法正确显示

问题描述

我正在编写一个脚本,用于组织神经网络项目的数据,特别是句子和我为其分配的标签。我的脚本中将数据输出.csv文件(我已经临时存储在列表中)的部分是:

    with open(out_file,'w+') as out:
        out.write("sentence,label \n")  # Write a header for .csv file
        for item in corp_list:
            out.write(item + '\n')  # Item is intended to look like: '[sentence],[label]'

像上面一样,item中的每个corp_list的格式应如下例所示:

我喜欢去山上,L

“ L”是我为其分配的标签

使用pd.read_csv加载数据时,大多数数据看起来都很完美,换行符按预期分隔了每个条目。但是,大约有11,000个条目如下所示:

他是我的兄弟,E \ n我们迫不及待想去度假,N \ n我的父亲是画家,T \ n她讨厌大海,E

它开始将条目“合并”为一个大条目,这使我的数据集很难使用。我真的不确定大多数换行符为什么起作用,但是其中某些出于某种原因不能起作用。对于我的1600万个条目,我如何格式化数据并将其写入文件的方式从未改变。

关于是换行/代码问题还是在我自己的数据集中的任何建议。

编辑:

请注意,我的数据没有逗号。 当我将相同的列表写入普通的.txt文件时,不会发生此问题。仅当我通过Pandas数据框或通过CSV模块的reader方法将其写入然后以CSV格式读取时会发生。

此外,当我将列表输出txt文件中,然后逐句地将其加载回列表中,而将csv加载到数据帧中时,不正确的条目会稍作更改。所有不正确的条目都缺少逗号中的空格,例如,这是正确的条目的样子:

我喜欢去山上,L

错误的输入(当然,如前所述,还有更多的连接)相比:

我喜欢去山上,L

并且仅将任何长且不正确的字符串条目中的最后一个标签设置为标签

解决方法

尝试使用此方法,将两个字符串分开

with open(out_file,'w+') as out:
    out.write("sentence,label \n")  # Write a header for .csv file
    for item in corp_list:
        out.write(item)
        out.write('\n') # Item is intended to look like: '[sentence],[label]'

或尝试使用f弦

with open('out_file',label \n")  # Write a header for .csv file
    for item in corp_list:
        out.write(f'{item}\n') # Item is intended to look like: '[sentence],[label]'

不建议使用'+'符号字符串串联,因为它具有很高的复杂性。也许您的数据中隐藏了一些隐式字符串连接,负责合并。如果这样做没有帮助,则问题很可能源于您的数据。