与线CSV文件打破至R或Python熊猫
问题描述:
我有包括列内换行符csv文件:与线CSV文件打破至R或Python熊猫
"id","comment","x"
1,"ABC\"xyz",123
2,"xyz\"abc",543
3,"abc
xyz",483
ID 3,例如含有这种换行符。
如何将它导入到python或R?另外,例如,我不介意这些换行符是否被替换为空格。
答
Python内置了CSV阅读器,可以为你处理。见csv documentation。
import csv
with open(filename) as f:
reader = csv.reader(f)
csv_rows = list(reader)
答
问题似乎是不换行,而是列中的所有逸出上报价:\"
。
Python:zvone的答案工作正常!
import csv
with open(filename) as f:
reader = csv.reader(f)
csv_rows = list(reader)
R:readr::read_csv
无需更改任何默认值即可工作。
答
您还可以使用python熊猫库read_csv函数。确保指定了转义字符。
import pandas as pd
df = pd.read_csv('path_to_csv', sep=',', escapechar='\\')
请注意第二个反斜杠转义第一个。它与熊猫或csv无关。
看看这个http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html,你可以设置分隔符,标题和几乎所有你需要的东西。它只是'df = pd.read_csv(文件路径)' –
换行符不会有问题,它们可以通过R的'read.csv'和pandas''read_csv'正确处理。然而,在你的文件中,双引号没有正确转义(应该是“”而不是\“),这一点可能会有问题。 – Scarabee
在R中,'read.csv'有转义问题,但'readr :: read_csv'和'data.table :: fread'在不进行进一步参数调整的情况下处理它很好 – alistaire