python - pandas - 读取和写入csv时换行符在多行中拆分行
问题描述
我的任务是从一个位置读取 CSV 文件,在数据框中的内存中进行一些操作,然后将文件放在其他位置。
源文件是'||' 分隔,目标文件必须是“,”分隔。
我已经为具有不同列的多个文件执行此操作。
在源 csv 之一中,其中一列在该列中包含换行符。
示例源 CSV 文件:
id||notes<CR><LF>
1||notesLine1<CR><LF>
2||notesLine1<CR><LF>
notesLine2<CR><LF>
3||notesLine1: notesLine2<CR><LF>
请注意,行分隔符也是 'note' 列中的新行字符也是 . 我无法更改源,但是如果需要进行任何修改,我可以在内存或磁盘中有一个中间层。
代码:
...
df_target = pd.read_csv(source_file, dtype = None, parse_dates= True, keep_default_na= False,header=None,sep="\|\|",engine='python', encoding='utf-8'))
df_target.to_csv(target_file,header=header_list,index=False,quoting=csv.QUOTE_ALL)
...
电流输出:
"id","notes"<CR><LF>
"1","notesLine1"<CR><LF>
"2","notesLine1"<CR><LF>
"notesLine2",""<CR><LF> -- extra unwanted row being created
"3","notesLine1: notesLine2"<CR><LF>
请注意,该行分为两行,总行数为 4 行。我不希望这种情况发生!
预期输出:
"id","notes"<CR><LF>
"1","notesLine1"<CR><LF>
"2","notesLine1 \n notesLine2",""<CR><LF>
"3","notesLine1: notesLine2"<CR><LF>
注意:我可以在同一行中包含 '\n' 和数据,而不是分成两行。这样总行数是 3 而不是 4。
有没有办法解决这个问题?
解决方案
CR 和 LF 是控制字符,分别编码为 0x0D(十进制 13)和 0x0A(十进制 10)。
它们用于标记文件中的换行符。
推荐阅读
- jenkins - 詹金斯作业参数
- algorithm - 通过删除一项来计算使序列排序的方法数
- host - TeamViewer Host 仅在有人登录时工作
- bash - 在 VSTS 中创建将在后台运行的命令
- python - 使用 Estimator API 在大字符串上训练 RNN
- testing - 如何在测试中模拟外部依赖项?
- google-app-engine - 如何从 Cloud Storage 存储桶提供 App Engine 网站的 /static/ 目录内容?
- c - 有人可以告诉我为什么这不起作用吗?
- facebook - Facebook 和 Instagram,在自己的网站上获取和显示自己的帖子
- shell - 退出tmux后如何自动退出终端