I have two script files, one for accessing a CSV file, turning each line into a dictionary, and returning a list of dictionaries (lines).
My second script is a function to create a new column in the file (C1), copy the data from another column (C2) to this new (C1) and delete the old column (C2). The purpose of this is to change the column names in the CSV file by creating copies with different names, however to change these I must call the same function several times just changing the parameters that are the old and new names used. How can I do this without having to call the function all the time?
File 1: access_csv
import unicodecsv
def ler_csv(arquivo):
with open(arquivo, 'rb') as dados:
dicionario = unicodecsv.DictReader(dados)
return list(dicionario)
inscricoes = ler_csv('inscriçoes.csv')
envolvimento_diario = ler_csv('envolvimento_diario.csv')
submissoes_de_projetos = ler_csv('submissoes_de_projetos.csv')
File 2: change_name
from acessar_csv import envolvimento_diario, inscricoes, submissoes_de_projetos
# Alterar nome das colunas de inglês para português
def alterar_nome(arquivo, colunaIngles, colunaPortugues): # Função para alterar nome das colunas, recebendo como argumentos o arquivo que será alterado, o nome da coluna em Inglês (atual) e o novo nome em português
for coluna in arquivo:
coluna[colunaPortugues] = coluna[colunaIngles] # Cria uma nova coluna (colunaPortugues) cujos valores são iguais ao da colunaIngles
del[coluna[colunaIngles]] # Deleta a colunaIngles
# Chamada de função para alterar o nome das colunas do arquivo envolvimento_diario
alterar_nome(envolvimento_diario, 'acct', 'id_conta')
alterar_nome(envolvimento_diario, 'utc_date', 'data_coleta_dados')
alterar_nome(envolvimento_diario, 'num_courses_visited', 'num_cursos_visitados')
alterar_nome(envolvimento_diario, 'total_minutes_visited', 'total_minutos_visitados')
alterar_nome(envolvimento_diario, 'lessons_completed', 'lições_completadas')
alterar_nome(envolvimento_diario, 'projects_completed', 'projetos_completos')
# Chamada de função para alterar o nome das colunas do arquivo inscricoes
alterar_nome(inscricoes, 'account_key', 'id_conta')
alterar_nome(inscricoes, 'status', 'status_inscrição')
alterar_nome(inscricoes, 'join_date', 'data_inscrição_curso')
alterar_nome(inscricoes, 'cancel_date', 'data_cancelamento_inscrição')
alterar_nome(inscricoes, 'days_to_cancel', 'dias_até_cancelamento')
alterar_nome(inscricoes, 'is_udacity', 'conta_teste')
alterar_nome(inscricoes, 'is_canceled', 'cancelamento_data_coleta_dados')
# Chamada de função para alterar o nome das colunas do arquivo submissoes_de_projetos
alterar_nome(submissoes_de_projetos, 'creation_date', 'data_submissão_projeto')
alterar_nome(submissoes_de_projetos, 'completion_date', 'data_avaliação_projeto')
alterar_nome(submissoes_de_projetos, 'assigned_rating', 'status_avaliação_projeto')
alterar_nome(submissoes_de_projetos, 'account_key', 'id_conta')
alterar_nome(submissoes_de_projetos, 'lesson_key', 'id_projeto')
alterar_nome(submissoes_de_projetos, 'processing_state', 'status_processo_avaliação')
print (envolvimento_diario[0])
print (inscricoes[0])
print (submissoes_de_projetos[0])
I tried to do this with a dictionary like the following question, but I could not: Error: unhashable type: 'dict_keys', how to solve?
Thank you!