我的目标是使用字典中的每一列来清除单个CSV文件中的地址数据。有点像自动从excel查找和替换功能。地址分为几列。 Housenumbers
,streetnames
,directions
和streettype
都在自己的栏中。我使用以下代码来完成整个文档。
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)
虽然代码可以正常工作,但我需要使用单独的词典,因为某些列需要特定的错字修正。例如,Housenumbers
列housenum
,stdir
代表街道方向,依此类推每个人都有其专栏的错字:
housenum = {
'One': '1',
'Two': '2
}
stdir = {
'NULL': ''}
我不知道该如何进行,我觉得这很简单,或者我需要熊猫,但不确定如何继续。将不胜感激!反正还有将错别字和一个校正过的错字归为一组吗?我尝试了以下操作,但出现了无法散列的类型错误。
missad = {
['Typo goes here',Typo 2 goes here',Typo 3 goes here']: 'Corrected typo goes here'}
答案 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)
,并将此想法用于其他感兴趣的列。