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.
↓ Wenn Sie es so vergleichen
"a","b"
"1","Ho\n""
"2","Fu,Oder'"
--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' |
import pandas as pd
df = pd.read_csv('hoge.csv')
print(df)
a | b | |
---|---|---|
1 | Ho\n"\n2" | Fu,Oder' |
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.
Der Inhalt der Datei sieht folgendermaßen aus
data.csv
a b
1"
2 Fu,Oder'
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 ...?
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! !! ** ** **