【发布时间】:2017-08-12 23:05:28
【问题描述】:
我有一个 csv 文件,其中包含客户编号、地址和保费。它是从另一个系统导出的,因此字段带有引号。在 R 中导入时,由于字符串中包含不需要的引号和逗号,我遇到了一个问题。查看示例(客户端 1 和 2 正确,客户端 3 有问题)
Client number Address Premium
"1" "Building5, Street 30,NY" 1000
"2" "Building7, Street 10,NY" 1000
"3" "Building 7\", Street 10,NY" 1000
因此,R 将其读取为我不想要的新的第 4 列。我如何以编程方式摆脱它。我可以使用基于 R 或 Python 的解决方案来清理 csv 。如果纠正问题很困难,即使删除客户端 3 也是可以接受的解决方案
尝试在 python 中这样做,但没有帮助
import csv
def remove_special_prob(s):
return ''.join(c for c in s if c not in ('\"'))
with open("Client.csv","rb") as infile, open("Client_new.csv","wb") as outfile:
reader = csv.reader(infile)
writer = csv.writer(outfile, quoting=csv.QUOTE_ALL)
for line in reader:
writer.writerow([remove_special_prob(elem) for elem in line])
【问题讨论】:
-
是
\"中的反斜杠存在于文件中,还是R打印的内容?您可以从记事本、vi、emacs 或其他外部文本编辑器进行复制和粘贴吗? -
在原始csv文件中
-
哦,更新了我的答案。
-
您是否尝试过
pandas来读取 CSV?他们的read_csvmethod 非常好。什么是分隔符?是制表符还是空格