Поиск и замена значений в определенных столбцах в файле CSV с использованием словарей - PullRequest
0 голосов
/ 18 апреля 2019

Моя цель - очистить адресные данные из отдельных файлов 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': ''}

Я понятия не имею, как поступить, я чувствую, что это что-то простое или что мне понадобятся панды, но я не уверен, какпродолжать.Буду признателен за любую помощь!Также есть ли способ сгруппировать опечатки вместе с одной исправленной опечаткой?Я попробовал следующее, но получил ошибку типа unhashable.

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

1 Ответ

0 голосов
/ 18 апреля 2019

это что-то вроде того, что вы ищете?

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)

и используйте эту идею для других интересующих вас столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...