使用字典在CSV文件的特定列中查找和替换值

时间:2019-04-18 18:34:11

标签: python excel

我的目标是使用字典中的每一列来清除单个CSV文件中的地址数据。有点像自动从excel查找和替换功能。地址分为几列。 Housenumbersstreetnamesdirectionsstreettype都在自己的栏中。我使用以下代码来完成整个文档。

missad = {
'Typo goes here': 'Corrected typo goes here'}

def replace_all(text, dic):
for i, j in missad.items():
    text = text.replace(i, j)
return text

with open('original.csv','r') as csvfile:
text=csvfile.read()
text=replace_all(text,missad)

with open('cleanfile.csv','w') as cleancsv:
cleancsv.write(text)

虽然代码可以正常工作,但我需要使用单独的词典,因为某些列需要特定的错字修正。例如,Housenumbershousenumstdir代表街道方向,依此类推每个人都有其专栏的错字:

housenum = {
'One': '1',
'Two': '2
}
stdir = {
'NULL': ''}

我不知道该如何进行,我觉得这很简单,或者我需要熊猫,但不确定如何继续。将不胜感激!反正还有将错别字和一个校正过的错字归为一组吗?我尝试了以下操作,但出现了无法散列的类型错误。

missad = { ['Typo goes here',Typo 2 goes here',Typo 3 goes here']: 'Corrected typo goes here'}

1 个答案:

答案 0 :(得分:0)

您正在寻找类似这样的东西吗?

import pandas as pd

df = pd.read_csv(filename, index_col=False)   #using pandas to read in the CSV file

#let's say in this dataframe you want to do corrections on the 'column for correction' column

correctiondict= {
                  'one': 1,
                  'two': 2
                 }

df['columnforcorrection']=df['columnforcorrection'].replace(correctiondict)

,并将此想法用于其他感兴趣的列。