J'ai un fichier La première colonne n'aura jamais de valeurs manquantes. P> J'essaie d'utiliser Python pour convertir cela en un fichier .txt code> qui est actuellement formaté de type similaire:
.csv code>. Je sais comment faire cela si j'ai toutes les données de colonne pour chaque ligne, mais mon
.txt code> manque des données dans certaines colonnes. Comment puis-je convertir cela en un
.csv code> tout en veillant au même type de données dans la même colonne? Merci:) p> p>
3 Réponses :
Une suggestion serait de faire un chèque de regex, si vous pouvez assumer une sorte d'uniformité. Par exemple, construisez une liste de modèles de regex, car chaque donnée semble différente. p>
Si la deuxième colonne que vous avez lu correspond à tous les caractères et espaces, c'est probablement la nourriture. D'autre part, si c'est un match de chiffre, vous devez supposer que la nourriture manque. Si c'est un match d'URL, vous avez manqué les deux. Vous voudrez être approfondi avec vos cas de test, mais si les données réelles sont similaires à votre exemple, vous disposez de 3 cas relativement uniques, avec une chaîne, un entier et une URL. Cela devrait faire écrire des tâches de regex relativement triviales. Importer Re et utiliser Re.Search devrait vous aider à tester chaque regex sans trop de frais généraux. P>
Si j'utilise Regex, comment affecter les données à une certaine colonne? par exemple. Si je découvre que la deuxième colonne est une correspondance chiffrée, que ferais-je écrire pour le faire pour que la 2e colonne de mon CSV soit vide et que la 3ème colonne a le chiffre? Merci
Construisez une chaîne si vous en avez besoin et remplissez-la sous «% S,% S,% s,% S»% (nom, aliments, identifiant, site Web). Remplissez ces variables avec ce que vous trouvez, défaut d'une chaîne vierge, puis écrivez dans un fichier.
divisé par des virgules. Vous savez que le modèle doit être mot, mot, int (je suppose), chaîne dans le modèle de www.ww.ward.word.
p>
Dites que vous obtenez une ligne "Susie, www.regexr.com", vous savez qu'il y a un mot manquant et un numéro manquant. Ajoutez 2 virgules après le premier mot. P>
C'est essentiellement un tas de déclarations ou d'une déclaration de cas de commutation. p>
Il y a probablement un moyen plus élégant de le faire, mais mon esprit est frit de traiter des problèmes de serveur et de téléphone toute la matinée. P>
P>
Ceci p>
Pour aider à la question ci-dessous, vous pouvez utiliser des références de retour ( régulier-expressions.info/backref.html ) Pour faire cela. Just Retour Référencez le chiffre, puis remplacez-le par la valeur du numéro avec une virgule ajoutée devant elle.
J'ai mis du code que j'ai esquissé pour lui, mais il devrait pouvoir aller avec une description générale d'une solution comme je l'ai suggéré. Cela ne me dérange pas de mettre le code sur demande, mais je ne veux pas non plus faire les devoirs de quelqu'un pour eux. Être éliminé par un groupe de personnes n'encourage pas vraiment les gens à aider, cependant. Je pense que je pourrais éviter de me soumettre à la fois après les votes baissés :-(.
Merci pour l'aide! Je vais essayer ceci. De plus, cela ne concerne pas les devoirs, c'est pour mon placement de travail coopératif haha.
Merci Seshie. Je m'excuse pour le ton de mon commentaire. J'ai eu beaucoup de stress et d'anxiété de plusieurs projets majeurs dont je suis responsable au travail et que cela me reçoit. Il est sorti de mon poteau. Bonne chance avec votre placement et laissez-moi savoir s'il y a quelque chose que je peux aider avec! Edit I>: Le courrier électronique peut être correct ou non, je viens de googler. J'ai trouvé cela aussi:
L'Email Regex pourrait ou non être correct, je viens de googler. J'ai trouvé cela aussi: re.match ("^. + @ ([?) [A-ZA-Z0-9 -.] +. ([A-ZA-Z] {2,3} | [0 -9] {1,3}) (]?) $ ", Email). Regex n'a jamais été mon point fort.
@Andy juste assez pour ne pas faire les devoirs de quelqu'un. Commentaire peut donner des conseils. Toutefois, si vous offrez une réponse, vous accepterez le contrôle des gens. La bonne volonté est bonne mais apprendre que les règles aident beaucoup aussi. Acclamations.
Une partie de la publication d'une réponse complète le teste également et vous n'êtes pas évité, car nous ne voulons pas que vous aidez, vous êtes évacué parce que vous ne suivez pas les règles de la communauté
J'ai pensé à votre problème et je ne peux offrir qu'une solution à moitié cuite à mesure que votre fichier CSV, lorsque vous avez des données manquantes, ne le montre pas avec quelque chose comme Votre fichier CSV actuel est comme ça p> si vous trouvez un moyen de modifier votre fichier CSV pour comme celui-ci p> Vous pouvez utiliser le Solution comme ci-dessous. Pour info, j'ai mis votre entrée dans un fichier texte p> , code>.
Ouvrez le fichier, divisé par
\ n code> ou
\ r \ n code>, puis divisez chaque ligne par
, code>. Vous avez ensuite une liste contenant chaque valeur et vous pouvez le traiter manuellement pour faire ce que vous voulez.
En gros, vous vous demandez comment identifier les données manquantes dans chaque ligne et ajouter une cellule vide dans le CSV comme ceci:
anita , 35, www.website.com code>?
@Aaron ouais quelque chose comme ça
La première colonne peut-elle avoir des valeurs manquantes? Les types de données sont-ils de chaque colonne connus à l'avance, etc.
@aws_apprentice La première colonne n'a aucune valeur manquante. IDK sur les types de données mais chaque chose de la 4ème colonne est une URL, chaque chose de la 3ème colonne est une valeur entière, etc.