如何解决在excel中区分分隔符和内容字符
我有一个像这样的 excel .csv 文件
id,ticker1,ticker2,Company,Supplier
9,MMM,DHR,3M Company,Danaher Corporation
10,IBM,International Business Machines Corporation
11,UNP,Union Pacific Corporation
12,TMO,Thermo Fisher Scientific Inc.
13,NSC,Norfolk Southern Corporation
61,No,14,TER,"Teradyne,Inc."
这里的数据是逗号分隔的,所以我使用 delimiter=','
,但在某些情况下,如最后一行,文本中也有逗号。在我的 csv 文件中,所有带逗号的字符串都在引号 " "
中。我试图用 open() 读取文件
with open('file.csv','r') as f:
对于 f.read().split('\n') 中的行:
但是这样我必须处理逗号和空值。所以我很好奇处理损坏的 csv 文件的正确方法是什么?我应该使用正则表达式还是像 pandas 这样的库?
解决方法
你应该使用 pythons autocmd FileType tex cnoremap <expr><space> '/?' =~ getcmdtype() ? '\_s*' : ' '
模块。它正是为此目的而设计的。消除诸如解析 csv 数据之类的复杂性,其中分隔符可以出现在字段内等。
这是一个简单的例子。我使用 csv
模块 csv
这将读取 CSV 的第一行作为键名,然后将每个后续行映射为键值。它会自动处理供应商字段中的逗号。
DictReader
输出
import csv
with open("sample.csv") as my_csv:
for row in csv.DictReader(my_csv):
print(f'id {row["id"]} has supplier "{row["Supplier"]}"')
,
我建议这样做:
with open('file.csv','r') as f:
content = f.read()
content = content.split('\n') #split paragraph
data = []
for i in content:
data.append(i.split(',')) #split each value
预期结果将是一个列表列表。所有丢失的数据都用“”表示,在“内容”的循环中,您可以更改为其他表示。
,在我的特定情况下,文本中的所有逗号都位于 "Teradyne,Inc."
之前,因此我使用替换函数 string.replace(',Inc','')
删除了逗号。删除文本中的逗号后,我可以split(',')
每行/行,如下面的答案 Long Doan 中所述
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。