Python CSV转换行内的数据
我希望有人能给我指出正确的方向 翻译行[x]内数据的有效方法是什么 例如,我想将以下内容转换为:街道、大道、道路、法院到街、大道、路、ct 我在考虑使用字典,原因是有时第一个字母会大写,有时不会:Python CSV转换行内的数据,python,csv,translate,punctuation,Python,Csv,Translate,Punctuation,我希望有人能给我指出正确的方向 翻译行[x]内数据的有效方法是什么 例如,我想将以下内容转换为:街道、大道、道路、法院到街、大道、路、ct 我在考虑使用字典,原因是有时第一个字母会大写,有时不会:{'ave':['Avenue','Avenue','Avenue','av','av']} 话虽如此,我是否可以(在翻译之前)将所有数据转换为小写(在原始csv文件中),以防止使用包含混合大写的数据 这适用于500-1000行之间的csv文件。。 多谢各位 编辑:我应该补充一点,行[x]字符串类似于:
{'ave':['Avenue','Avenue','Avenue','av','av']}
话虽如此,我是否可以(在翻译之前)将所有数据转换为小写(在原始csv文件中),以防止使用包含混合大写的数据
这适用于500-1000行之间的csv文件。。
多谢各位
编辑:我应该补充一点,行[x]字符串类似于:'123 main street'
,这就是我想要翻译成'123 main st'
编辑#2:
谢谢大家正如你们所建议的,我解决这个问题的方法是建立一本字典。例如,假设任何形式的Avenue-我想显示为“Ave”: 然后将其与地址字段中的每个单词一起使用,如下所示:
word = mapper.get(word.lower(), word)
您只需在csv字段中调用lower()方法。这是python中字符串对象常用的一种方法。当一行[]等于
'123 main avenue'
时,这种方法有效吗?还是必须执行某种类型的contains
方法?@jes516对于'123 main avenue'
中的每个单词,我将运行:word=mapper.get(word.lower(),word)
,然后加入结果(在一个空格上)。像这样:add1='123 MAIN STREET'
我会做:为add1中的i.split(“”):
为add1中的i.split(“”):
如果我想创建上面的代码(在我最初的问题中)在函数中,我必须在函数内部定义字典吗?或者我可以在函数外部定义字典吗?我想创建更多这样的函数,这将需要更多的字典。。
mapper = {'ave': 'Ave', 'avenue': 'Ave', 'av': 'Ave', 'st': 'Street', 'street': 'Street, ...}
word = mapper.get(word.lower(), word)