Ich habe viele von CSV-Dateien als solche formated:Regex Separatoren mit read_csv() in Python verwenden?
date1::tweet1::location1::language1
date2::tweet2::location2::language2
date3::tweet3::location3::language3
und so weiter. Einige Dateien enthalten bis zu 200.000 Tweets. Ich möchte 4 Felder extrahieren und sie in einen Pandas-Datenrahmen einfügen sowie die Anzahl der Tweets zählen. Hier ist der Code Ich verwende jetzt:
try:
data = pd.read_csv(tweets_data_path, sep="::", header = None, engine='python')
data.columns = ["timestamp", "tweet", "location", "lang"]
print 'Number of tweets: ' + str(len(data))
except BaseException, e :
print 'Error: ',str(e)
ich die folgende Fehlermeldung auf mich geworfen bekommen
Error: expected 4 fields in line 4581, saw 5
Ich habe versucht Einstellung error_bad_lines = False, manuell die Zeilen zu löschen, die das Programm Fehler machen, Einstellung nrows zu einer niedrigeren Nummer .. und immer noch diese "erwarteten Felder" Fehler für zufällige Zeilen. Sagen wir, ich lösche die untere Hälfte der Datei, ich bekomme den gleichen Fehler aber für Zeile 1787. Was für mich keinen Sinn ergibt, da es vorher korrekt verarbeitet wurde. Durch die visuelle Überprüfung der CSV-Dateien werden keine abnormalen Muster sichtbar, die plötzlich in der fehlerhaften Zeile erscheinen.
Die Datumsfelder und Tweets enthalten Doppelpunkte, URLs und so weiter, also könnte Regex sinnvoll sein (Ich habe gerade begonnen, Python zu verwenden, bitte mit mir ..)?
Kann mir jemand helfen herauszufinden, was ich falsch mache? Vielen Dank im Voraus!
bearbeiten: Auswahl der Daten, wie unten angefordert:
Fri Apr 22 21:41:03 +0000 2016::RT @TalOfer: Barack Obama: Brexit would put UK back of the queue for trade talks [short url] #EuRef #StrongerIn::United Kingdom::en
Fri Apr 22 21:41:07 +0000 2016::RT @JamieRoss7: It must be awful to strongly believe in Brexit and be watching your campaigns make an absolute horse's arse of it.::The United Kingdom::en
Fri Apr 22 21:41:07 +0000 2016::Whether or not it rains on June 23rd will have more influence on the vote than Obama's lunch with the Queen and LiGA with George. #brexit.::Dublin, Ireland::en
Fri Apr 22 21:41:08 +0000 2016::FINANCIAL TIMES FRONT PAGE: 'Obama warns Brexit vote would send UK to 'back of trade queue' #skypapers [short url]::Mardan, Pakistan::en
/@ Benutzer starten durch Entfernen der "Motor". Und, bitte fügen Sie tatsächliche Datenprobe .5-10 Reihen hinzu. – Merlin
Hallo Merlin und danke für die Antwort! Das Entfernen der Engine gibt mir eine "ParserWarning-Fallback-to-Python-Engine, weil die 'C-Engine Regex-Separatoren nicht unterstützt". Ich habe das OP mit aktuellen Daten bearbeitet – user2763524