Forum
>>
Programmazione Python
>>
Files e Directory
>>
Trovare le somiglianze tra righe di un file .csv
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Valeria dd |
2015-07-10 14:11:47 - Trovare le somiglianze tra righe di un file .csv
|
Salve, ho un file .csv. ogni riga di questo file corrisponde ad una persona.
Esempio del file .csv: Riga 1: Maria,Rosa,Mela,Mare Riga 2: Filippo,Verde,Pera,Montagna Riga 3: Roberta, Rosa,Fragola,Città Riga 4: Maria,Giallo,Mela,Montagna Come faccio a confrontare le righe tra di loro, senza considerare le righe che hanno il primo elemento (cioè il nome) uguale? Il confronto deve essere tra il secondo elemento della prima riga e il secondo elemento della seconda riga ecc. (cioè "Rosa"="Verde"? "Rosa"="Rosa"? non devo fare il confronto tra "Rosa"="Giallo" perchè il primo elemento è lo stesso). Ogni volta che il valore è uguale devo inserire in una lista (che contiene minimo due utenti) i nomi degli utenti e il valore che gli accomuna. Scusatemi per la domanda, sono diversi giorni che ci provo senza riuscirci . Per il momento ho scritto solamente: import csv with open('utenti.csv', 'rb') as csvfile: utenti = csv.reader(csvfile, delimiter=',')Grazie a tutti! --- Ultima modifica di Valeria dd in data 2015-07-10 14:12:22 --- --- Ultima modifica di Valeria dd in data 2015-07-10 14:17:12 --- |
|
Scritto da Claudio_F |
2015-07-12 19:51:29 - Re: Trovare le somiglianze tra righe di un file .csv
|
Qual è esattamente il dubbio?
csv.reader(....) crea un lettore che attinge le righe "grezze" dal file csvfile, e per ogni riga fornisce una lista di elementi. Il lettore va iterato tramite un ciclo for: import csv with open('utenti.csv', 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=',') for row_elements in reader: fa qualcosa con la lista di elementi...Le singole liste di elementi ottenute dalle varie righe si potrebbero salvare in una "superlista", e di conseguenza analizzare come si preferisce. In particolare il numero di combinazioni di righe da analizzare a due a due si può determinare con: def numero_combinazioni(n): if n < 2: raise ValueError('Richiesto valore > 1') a = 0 for h in range(1, n): a += h return adove il parametro 'n' è il numero di righe presenti nel file csv. A seconda delle analisi che si vogliono fare potrebbero essere interessanti altre strade, come l'uso dei set: >>> Maria = {'Rosa', 'Mela', 'Mare', 'Giallo', 'Montagna'} >>> Filippo = {'Verde', 'Pera', 'Montagna'} >>> Roberta = {'Rosa', 'Fragola', 'Mare', 'Città'} >>> >>> list(Maria & Filippo) ['Montagna'] >>> list(Maria & Roberta) ['Mare', 'Rosa'] >>> list(Filippo & Roberta) [] --- Ultima modifica di Claudio_F in data 2015-07-12 19:56:04 --- *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
|
Scritto da Valeria dd |
2015-07-12 22:19:27 - Re: Trovare le somiglianze tra righe di un file .csv
|
grazie, ora provo con il mio file.. sei molo gentile.
|
Pagina: 1
Esegui il login per scrivere una risposta.