J'essaie d'imprimer tous les jeux de données dans un fichier CSV qui existent plus d'une fois. Pas des valeurs uniques mais plusieurs valeurs ensemble.

Ainsi, par exemple:

//dataset1: 25,41,1,23,12,//dataset2: 11, 2
//dataset1: 25,41,1,22,13,//dataset2: 11, 2
//dataset1: 25,41,1,23,14,//dataset2: 11, 3
//dataset1: 25,41,1,23,15,//dataset2: 11, 4
//dataset1: 25,41,1,23,15,//dataset2: 11, 5

J'ai essayé de faire ça:

    with open(str(csv_file)) as file:
        reader = csv.reader(file)
        for row in reader:
            rowset1 = [row[0], row[1], row[2], row[3], row[4]]
            rowset2 = [row[5], row[6]] 
            //this is where I am stuck 
            if rowset1 //exists more than once > 1 or rowset2 //exists more than once > 1:
                print("True")
            else:
                print("False")

ÉDITER:

La sortie doit être:

True
True
False
True
True

J'ai également essayé quelque chose comme ça, mais je pense que c'est la mauvaise approche:

len(my_list) != len(set(my_list))
0
Rise Blink 15 mars 2019 à 12:59

2 réponses

Meilleure réponse

Si j'ai bien compris:

Fichier

25,41,1,23,12,11,2
25,41,1,22,13,11,2
25,41,1,23,14,11,3
25,41,1,23,15,11,4
25,41,1,23,15,11,5

Code

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import contextlib
import csv

if __name__ == '__main__':

    res1 = list()
    res2 = list()

    with contextlib.closing(open('file.csv', 'r')) as csv_file:
        reader_orig = csv.reader(csv_file, delimiter=',')
        for row in reader_orig:
            row_set1 = [row[0], row[1], row[2], row[3], row[4]]
            row_set2 = [row[5], row[6]]

            if row_set1 not in res1:
                res1.append(row_set1)
            else:
                print(row_set1)

            if row_set2 not in res2:
                res2.append(row_set2)
            else:
                print(row_set2)

Sortie

['11', '2']
['25', '41', '1', '23', '15']
1
Dmitrii 15 mars 2019 à 10:13

Votre question n'est pas claire, qu'est-ce qu'un "ensemble de données" dans un CSV? Donnez un extrait réel de votre CSV, sans commentaires "//" que je suppose que vous avez ajouté.

0
Inon Peled 15 mars 2019 à 10:05