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

Mensagens populares deste blogue

Python - Gerador de nomes aleatórios: V2.0