Se connecter avec
S'enregistrer | Connectez-vous

[Python] Copier aléatoirement des rangées à partir d'un fichier CSV

Dernière réponse : dans Programmation

Bonjour,

J'ai un fichier CSV de 8000 lignes et 30 colonnes. J'aimerais copier les colonnes 8 à 30 environ n=300 fois dans mon fichier CSV, à droite des données existantes, avec une condition :

J'aimerais "randomiser" les lignes (les copier en les ayant préalablement mélangées) de telle manière qu'il n'y ait pas deux mêmes lignes initiales dans ma ligne finale (concrètement, après mes 300 copies, j'aimerais qu'il n'y ait pas deux fois la même ligne du tableau d'origine dans la même ligne, exemple : a,b,c;d,e,f;g,h,i;j,k,l et n=2 copies. Résultat : a,b,c,g,h,i,d,e,f;d,e,f,g,h,i,a,b,c;g,h,i,a,b,c,j,k,l;j,k,l,d,e,f,a,b,c) (est-ce clair ?) (je ne veux pas avoir a,b,c,g,h,i,d,e,f,g,h,i car il y a deux fois g,h,i)

De plus, et c'est un détail, j'aimerais que la première ligne, contenant les headers, soit copiée en ajoutant _1 pour la première copie, _2 pour la 2e, ... _n pour la n-ième (exemple : header original : a, b, c; header résultat : a, b, c, a_1, b_1, c_1, ... a_n, b_n, c_n)

Ça peut avoir l'air simple, mais je n'y arrive pas.

Merci pour votre aide !

Antonin
Lassé par la pub ? Créez un compte

Les deux.
Avec "random.sample(xrange(8000),n)", j'obtiens la liste des lignes que j'aimerais copier dans le fichier final.
Mais je ne comprends pas trop comment copier et coller où je veux mes données. Je ne comprends pas comment manipuler mon fichier CSV. Les commandes sont assez basiques.
Comment, concrètement, demander à ce que le programme copie, à partir de 5 lignes, les lignes 1, 5 et 3 sur une ligne ? Il faut accéder aux lignes, puis copier les valeurs les unes après les autres. Déjà là, je bloque. Mais ne plus, je ne souhaite pas copier tous les éléments de la ligne, mais seulement les éléments 8 à 30. Et là, je bloque complètement.

Donc ma question précise est :
- comment accéder à une ligne ?
- comment copier seulement une partie de cette ligne une fois que je l'aurais trouvée ?
- comment coller tout ce que j'ai trouvé dans une ligne et l'écrire dans mon fichier CSV ?

Ensuite, il y a la question du header, comment ajouter le "_i" dans le string et écrire le tout, mais je pense que si je réponds aux premières questions, ça viendra tout seul...
Lassé par la pub ? Créez un compte