Envoyé par
BsMoh
Bonjour les gars,
C'est mon premier post ici, j'espere que je suis au bon endroit. Je suis debutant avec Python et j'en ai besoin d'aider tres urgent. Voici le probleme:
J'au un fichier CSV avec plusieurs colonnes et lignes. Je lis le fichier comme suit
in_csv = pd.read_csv(inputFileName.csv)
voici le format general des colonnes
Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y
Parmi les lignes, certaines ont des valeurs dans Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y (En plus des premieres colonnes (juska la fin des "..."). D'autres, ont des valeurs seulement dans Def1, Def_1x,Def_1y. Je veux le fichier de sorti csv ayant comme suit:
1. Les lignes ont ces collonnes Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y (pas deDef2,Def_2x,Def_2y)
2. Si ligne_i dans input csv n'a aucune valeur dans Def_2x,Def_2y (colonnes vides), la ligne entiere est copiee dans output csv (sans les 3 dernieres colonnes).
3. Si ligne_j dans input csv a des valeurs dans Def_2x,Def_2y (colonnes non vides), la ligne doit etre fragmentee en deux lignes (consecutives) dans output csv. Une ligne avec Def1, Def_1x,Def_1y et une seconde ligne avec les valeurs dans Def2,Def_2x,Def_2y copiee vers Def1, Def_1x,Def_1y dans output csv
4. L'ordre des lignes doit rester intacte
exemple input:
Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y
A1,B1,C1,....,a,0.2,0.3,,,
A2,B2,C2,.....,b,0.4,0.5,b,0.6,0.7
A3,B3,C3,.....,b,0.8,0.9,,,
Output:
Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y
A1,B1,C1,....,a,0.2,0.3
A2,B2,C2,.....,b,0.4,0.5
A2,B2,C2,.....,b,0.6,0.7
A3,B3,C3,.....,b,0.8,0.9
Si je peux avoit une colonne supplementaire, RANK, comme suit, ca serai tres genial. Cette RANK est simplement tojours=1 pour les lignes non fragmentees (donc a valeurs vides dans les 3 dernieres colonnes) et egale a 1:2 respectivement pour les lignes fragmentes en deux/
Col1,Col2,Col3,JK,KK,...,RANK,Def1, Def_1x,Def_1y
A1,B1,C1,....,1,a,0.2,0.3
A2,B2,C2,.....,1,b,0.4,0.5
A2,B2,C2,.....,2,b,0.6,0.7
A3,B3,C3,.....,1,b,0.8,0.9
Merci beaucoup
Partager