CSV在行内转换数据

时间:2014-08-31 04:26:44

标签: python csv translate punctuation

我希望有人能指出我正确的方向。

在一行[x]中翻译数据的有效方法是什么?

例如我想转换以下内容:街道,大道,道路,法院到st,ave,rd,ct。

我正在考虑使用字典,原因是有时第一个字母会大写,有时它会不会是:{'ave':['Avenue','avenue','AVENUE','av','AV']}

话虽如此,我是否也可以做一些事情(在翻译之前),例如将所有数据转换为小写(在原始csv文件中)以防止使用包含混合大写字母的数据?

这适用于任何介于500-1000行之间的csv文件。 谢谢

编辑:我应该添加行[x]字符串类似于:'123 main street',这就是我希望翻译为'123 main st'

编辑#2:

mydict = {'avenue':'ave', 'street':'st', 'road':'rd', 'court':'ct'}
add1 = '123 MAIN ROAD'
newadd1 = []

for i in add1.lower().split(' '):
    newtext = mydict.get(i.lower(),i)
    newadd1.append(newtext)

print ' '.join(newadd1)

谢谢大家

1 个答案:

答案 0 :(得分:0)

正如你所建议的,我将解决它的方法是构建字典。例如,说任何形式的大道 - 我想显示为" Ave":

mapper = {'ave': 'Ave', 'avenue': 'Ave', 'av': 'Ave', 'st': 'Street', 'street': 'Street, ...}

然后将其用于地址字段中的每个单词,如下所示:

word = mapper.get(word.lower(), word)