0
votes

Comment exporter des fichiers CSV contenant des chiffres avec des milliers d'opérateurs à Python (Pandas)?

J'ai ce chiffres.csv :

titre / bola; "Total / 1,333,903";

Et je suis en cours d'exécution pièce de code sur celui-ci: xxx

impression (df1) retourne: xxx

quand Je suis en train d'enregistrer dans final_csv.csv le numéro 1,349.098 tourne vers 1 . Je voudrais enregistrer le numéro 1349.098 , à la place. Pouvez-vous m'aider?


1 commentaires

Les réponses ressemblent à elles devraient travailler. Quelle est l'intention des opérations de chaîne dans les lignes 3 et 4 du code? Le problème pourrait être un résultat inattendu plutôt qu'un problème avec les pandas.


4 Réponses :


2
votes

On dirait que vous lisez dans la colonne 1 sous forme de chaîne, puis écrivez-le comme une chaîne. Cela signifie qu'il continuera à transporter les virgules en avant. Dans TO_CSV ("TEST.CSV") , vous ne spécifiez pas de séparateur afin qu'il soit défaillant à une virgule. Je suppose que 349.098 se présente dans la colonne suivante. Vous pouvez contourner cela en spécifiant un séparateur dans df1.to_csv ("test.csv", sep = ';') , mais assurez-vous que votre code fait ce que vous pensez que c'est en premier. < / p>


2 commentaires

Désolé, je n'ai pas eu d'où je spécifierais df1.to_csv ("test.csv", sep = ';')


Cela remplacerait votre df1.to_csv ("test.csv") ligne.



1
votes

Essayez le milliers = ',' code> drapeau lors de la lecture des données CSV. Voir Param's Pandas.read_csv A >

Title,Total
BOLA,"1,333.903"


3 commentaires

Cela résoudrait le problème que j'ai mentionné plus tôt et fait probablement ce que l'Asker veut vraiment, mais n'a pas demandé. (Vous êtes les besoins du héros Gotham.)


Voir la démo de travail ici: repl.it/@sanyahmed/earnestTatteredrepo et laissez-moi savoir est que vous vouliez ou pas?


@Curious_mind Le problème est lorsque j'ouvre le CSV Il affiche uniquement 1 car il interpréte les virgules comme un disjoncteur. C'est pourquoi je voudrais produire: bola, "1333.903" . J'ai ajouté le code complet.



0
votes

Vous devez citer le champ Numéro lors de l'écriture et de la lecture, car il contient le caractère "," Séparateur de séparateur: xxx

Voir la "section citant" dans les pages DOC to_csv , read_csv


2 commentaires

C'est le retour TypeError: "citant" doit être un entier


Fixé. Comme le Docpages disent, Pandas utilise des codes entier pour la citation: Citation = Quote_minimal (0), Quote_All (1), Quote_Nonnumeric (2) ou Quote_None (3) , alors que le module CSV intégré Python utilise ces noms constants csv.quote_minimal etc.



0
votes

Lorsque vous avez ce fichier de données après la ligne 4 de votre code: xxx pré>

alors vous pouvez supprimer la virgule et convertir la chaîne en flotteur: P>

    Title   Total
0   BOLA    1333.903


0 commentaires