python - 换行有时无法在 .csv (Python/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
incorp_list
都打算像这个例子一样格式化:
我喜欢去山上,L
其中“L”是我分配给它的标签。
当我使用加载它时,我的大部分数据pd.read_csv
看起来都很完美,换行符按预期分隔每个条目。但是,大约有 11,000 个条目看起来像这样:
他是我的兄弟,E\n我们等不及要放假了,N\n我父亲是个画家,T\n她讨厌海,E
它开始将条目“合并”到一个大条目中,这使我的数据集非常难以使用。我真的不确定为什么大多数换行符有效,但其中一些由于某种原因不能。对于我所有的 1600 万个条目,我如何格式化数据并将其写入文件永远不会改变。
关于它是否被认为是换行符/代码问题或可能在我自己的数据集中的任何建议。
编辑:
我的数据没有逗号,请注意。.txt
当我将相同的列表写入普通文件时,不会发生此问题。只有当我编写它然后通过 Pandas 数据框或CSV
模块的读取器方法将其读取为 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-strings
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(f'{item}\n') # Item is intended to look like: '[sentence], [label]'
不建议使用 '+' 符号字符串连接以获得高复杂度。也许您的数据中隐藏了一些隐式字符串连接,负责合并。如果这没有帮助,那么问题很可能源于您的数据。
推荐阅读
- python -
while uploading large file via remote webdriver - html - 有什么方法可以在导航器中预览 .msg 文件?
- groovy - sed command won't replace my string when executed form Jenkins
- tsql - TSQL - struggling with simple where condition
- angular - PrimeNG 多选 onItemClick 在更新到 7 后不起作用
- r - 如何在 rstudio 中使用 stargazer 修复“if (nchar(text.matrix[r, c]) > max.length[real.c]) { : 缺少 TRUE/FALSE 的值”中的错误?
- python - 使用 tensorboard 进行 keras 训练可视化
- javascript - SummernotedirtyForm
- vegan - ordiplot3d 颜色按治疗/类别
- java - Spring boot:带占位符的属性文件