Der Umgang mit nicht angegebenen Trennzeichen ist immer ein Ärgernis. Da in diesem Fall bekannt ist, dass der beschädigte Text von drei korrekt codierten Spalten umgeben ist, können wir ihn wiederherstellen. TBH, würde ich benutzen Sie einfach den Standard-Python-Leser und einen Datenrahmen bauen einmal von diesem:
import csv
import pandas as pd
with open("semi.dat", "r", newline="") as fp:
reader = csv.reader(fp, delimiter=";")
rows = [x[:1] + [';'.join(x[1:-2])] + x[-2:] for x in reader]
df = pd.DataFrame(rows)
die
0 1 2 3
0 12012 My Name is Mike. What is your's? 3 0
1 1522 In my opinion: It's cool; or at least not bad 4 0
2 21427 Hello. I like this feature! 5 1
Dann erzeugt wir sie sofort speichern und richtig etwas zitiert erhalten:
In [67]: df.to_csv("fixedsemi.dat", sep=";", header=None, index=False)
In [68]: more fixedsemi.dat
12012;My Name is Mike. What is your's?;3;0
1522;"In my opinion: It's cool; or at least not bad";4;0
21427;Hello. I like this feature!;5;1
In [69]: df2 = pd.read_csv("fixedsemi.dat", sep=";", header=None)
In [70]: df2
Out[70]:
0 1 2 3
0 12012 My Name is Mike. What is your's? 3 0
1 1522 In my opinion: It's cool; or at least not bad 4 0
2 21427 Hello. I like this feature! 5 1
Können Sie mehr über Ihr Problem erklären? Was ist deine erwartete Ausgabe? – Kasramvd
meine Absicht ist es, diese CSV-Daten in einen DataFrame zu analysieren. Aber es gibt eine Ausnahme aus, weil in einer Spalte ein Semikolon steht und Pandas denkt, dass es in zwei Spalten aufgeteilt werden sollte. –
Wer erzeugt diese mehrdeutigen Dateien und gibt es irgendeine Möglichkeit, Himmel und Erde zu bewegen, um sie gesund zu bekommen? –