Python - criar nomes aleatórios
Viva !
Como para um projecto que estou a fazer para o meu curso estou a precisar de vários nomes inventados para uma base de dados fícticia, pensei em fazer um pequeno exercício em Python: criar uma série de nomes inventados para colocar na dita BD.
Comecei por arranjar uma série de primeiros e últimos nomes e colocar tudo num ficheiro de excel.
Depois importei o ficheiro para o Python:
import numpy as np
df = pd.read_csv('C:/Users/Dell Latitude E5570/Desktop/nomes_1.csv', delimiter = ";")
incompleta1 = df["Primeiros"]
incompleta2 = df["Ultimos"]
primeiros = [ element for element in incompleta1 if element !='nan' ]
ultimos_pre = [ str(x) for x in incompleta2 ]
ultimos = [x for x in ultimos_pre if x != 'nan']
Temos duas colunas no df, a Primeiros e a Ultimos, mas o problema aqui é que a coluna últimos tem vários "NaN" de que nos queremos ver livres, portanto primeiro transformamos tudo em strings e depois fazemos um for loop que nos cria uma nova lista sem os valores indesejados.
import pandas as pd
import csv
from random import choice
a = int(input('Quantos nomes queres ? :'))
nomesfinais = {"Nomes":[]}
for i in range(a):
combination = (choice(primeiros), choice(ultimos))
nome = combination[0] + ' ' + combination[1]
nomesfinais["Nomes"].append(nome)
csv_file = "Nomes.csv"
with open('mycsvfile.csv', 'w') as f:
w = csv.DictWriter(f, nomesfinais.keys())
w.writeheader()
w.writerow(nomesfinais)
Depois recolhemos o input do utilizador, para sabermos quantos nomes pretende gerar, combinamos os dois nomes numa só string e depois guardamos todos esses resultados num dicionário. Finalmente guardamos esses nomes num ficheiro .csv.
Este processo ainda pode ser melhorado pois depois de termos o CSV ainda temos de partir a string toda nos vários nomes individuais, mas mesmo assim já cumpre o objectivo proposto !
Comentários
Enviar um comentário