Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten

Vorwort

Normalerweise verarbeite ich Daten vor. Die meisten Daten funktionieren gut, wenn Sie sie mit Pandas lesen können. Möglicherweise stoßen Sie jedoch auf unlesbare Daten. Führen Sie daher Aufzeichnungen über Ihren Kampf mit ihnen.

Welche Art von Daten

↓ Wenn Sie es so vergleichen

"a","b"
"1","Ho\n""
"2","Fu,Oder'"

Ziele

--Erstellen Sie eine CSV-Datei, die von read.csv () von pandas, einer Python-Bibliothek, gelesen werden kann. ――Da es der erste Teil der Vorverarbeitung ist, möchte ich es zu einem DataFrame für die nachfolgende Verarbeitung machen. --Cammas und Anführungszeichen werden unter Berücksichtigung der Möglichkeit der Bedeutung so behandelt, als wären sie Teil der Daten.

↓ Mit anderen Worten, ich möchte diese Art von DataFrame erstellen.

a b
1 Hoke"
2 Fu,'Oder'

Fehlerbeispiel

Versuchen Sie zu lesen, wie es bei Pandas ist

import pandas as pd

df = pd.read_csv('hoge.csv')
print(df)

Ergebnis

a b
1 Ho\n"\n2" Fu,Oder'

Erfolgreicher Weg

Skript

import re
import pandas as pd

#Als Text lesen
with open('hoge.csv', 'r') as f:
    text = f.read()

tmp_text = re.sub('([^"])\n([^"])', r'\1\2', text) #Zeilenvorschubcode in der Mitte der Daten(\n)Beseitigen, abschütteln
tmp_text = re.sub('","', '\t', tmp_text)           #Trennen Sie Trennzeichen in Registerkarten
tmp_text = re.sub('(^"|"$)', '', tmp_text)         #Entfernen Sie das erste und das letzte Anführungszeichen in der Datei
tmp_text = re.sub('"\n"', '\n', tmp_text)          #Entfernen Sie das Zitat in der Mitte

#Einmal in eine Datei spucken
with open('data.csv', 'w') as f:
    f.write(tmp_text)

#Bestätigen
df = pd.read_csv('data.csv', sep='\t')
print(df)

Ausgabe


   a     b
0 1"
1 2,Oder'

Ich lese.

Datei

Der Inhalt der Datei sieht folgendermaßen aus

data.csv


a	b
1"
2 Fu,Oder'

Bedenken

Wenn die Daten \ t enthalten würden, würde dieser Code natürlich nicht funktionieren. Gleiches gilt, wenn der Zeilenvorschubcode unterschiedlich ist. Sie müssen überprüfen, welche Zeichen enthalten sind und wie Sie sie ersetzen können. → Prüfmethode erstellen und Trennzeichen parametrieren?

Ich werde es tun, wenn ich Lust dazu habe. Wenn Sie es auf jupyter verarbeiten, können Sie die Daten leicht überprüfen und die Quelle ändern, so dass es möglicherweise nicht notwendig ist ...?

Fazit

Wenn Sie es mit Pandas lesen, ist es bereits hier. Es sollte nicht nur für Pandas verwendbar sein, sondern auch bevor es von BI-Tools gefressen wird.

** Reguläre Ausdrücke sind bequem! !! ** ** **

Recommended Posts

Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
[Python] Werden Sie die Datierung mit regulären Ausdrücken los
Holen Sie sich Youtube-Daten mit Python
Über Python und reguläre Ausdrücke
Holen Sie sich mit Python eine große Menge von Starbas Twitter-Daten und probieren Sie die Datenanalyse Teil 1 aus
[Python] Mit DataReader Wirtschaftsdaten abrufen
Beispiel für das Parsen von HTTP GET und JSON mit Pfefferpython
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Umgang mit regulären Ausdrücken durch PHP / Python
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Überlappende reguläre Ausdrücke in Python und Java
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Datenpipeline-Aufbau mit Python und Luigi
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Ersetzen Sie Nicht-ASCII durch reguläre Ausdrücke in Python
Empfehlung von Altair! Datenvisualisierung mit Python
Python: Vereinfachte morphologische Analyse mit regulären Ausdrücken
Entfernen Sie DICOM-Bilder in Python
[Python] Reguläre Ausdrücke Reguläre Ausdrücke
Ich habe 0 Jahre Programmiererfahrung und fordere die Datenverarbeitung mit Python heraus
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Holen Sie sich Bilder von OpenStreetMap und Geographical Institute Map mit Python + staticmap
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
Unterscheiden Sie zwischen Zahlen und Buchstaben mit regulären Ausdrücken
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Holen Sie sich den Git-Zweignamen und den Tag-Namen mit Python
TRIE-Baumimplementierung mit Python und LOUDS
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Fortsetzung der Multi-Plattform-Entwicklung mit Electron und Python
Beispiel für das Lesen und Schreiben von CSV mit Python
Ich habe die Geschwindigkeit regulärer Ausdrücke in Ruby, Python und Perl (Version 2013) verglichen.
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Holen Sie sich ein Date mit Python
Datenanalyse mit Python
Mit Python + Tweepy können Sie Bilder und Videos der Medienzeitleiste abrufen
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
Holen Sie sich Finanzdaten mit Python (dann ein wenig basteln)
Laden Sie mp4 einfach teilweise mit Python und youtube-dl herunter!
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Fordern Sie die Hauptkomponentenanalyse von Textdaten mit Python heraus
Erhalten Sie Kommentare auf Youtube Live mit [Python] und [Pytchat]!
Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
Untersuchen Sie den Java- und Python-Datenaustausch mit Apache Arrow
Holen Sie sich mit Python den Betriebsstatus von JR West
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
Erhalten Sie ein abstraktes Verständnis der Python-Module und -Pakete
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
[CGI] Führen Sie das Server-Python-Programm mit Vue.js + axios aus und rufen Sie die Ausgabedaten ab
Holen Sie sich den Ländercode mit Python
Mit Python erstellte Beispieldaten
Programmieren mit Python und Tkinter