我有一个excel.csv文件,看起来像这样
id,ticker1,ticker2,Company,Supplier
9,MMM,DHR,3M Company,Danaher Corporation
10,MMM,IBM,3M Company,International Business Machines Corporation
11,MMM,UNP,3M Company,Union Pacific Corporation
12,MMM,TMO,3M Company,Thermo Fisher Scientific Inc.
13,MMM,NSC,3M Company,Norfolk Southern Corporation
61,No,0,,
14,MMM,TER,3M Company,"Teradyne, Inc."
这里的数据是逗号分隔的,所以我使用delimiter=','
,但在某些情况下,就像在最后一行一样,文本中也有逗号。在我的csv文件中,所有带逗号的字符串都用引号" "
。我已尝试使用open()读取该文件
with open('file.csv','r') as f:
for row in f.read().split('\n'):
但这样我必须处理逗号和空值。所以我很好奇,哪一种是处理损坏的csv文件的正确方法?我应该像熊猫一样使用正则表达式还是LIB
在我的特殊情况下,文本中的所有逗号都在
"Teradyne, Inc."
之前,因此我使用replace函数string.replace(', Inc','')
删除了逗号。删除文本中的逗号后,我可以split(',')
下面的答案Long Doan中描述的每一行/每一行您应该使用pythons
csv
模块。它的设计正是为了这个目的。为了消除诸如解析csv数据的复杂性,删除器可以出现在字段内等下面是一个简单的例子。我使用
csv
模块DictReader
这将读取CSV的第一行作为键名,然后将随后的每一行映射为键值。它会自动处理“供应商”字段中的逗号输出
我建议:
预期结果将是列表的列表。所有缺失的数据都将被表示为“”,在“内容”循环期间,您可以在其中更改为其他表示
相关问题 更多 >
编程相关推荐