Absätze werden in Datei nicht erkannt

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

Hi!

Ich habe ein Problem, das ich nicht gelöst bekomme: Ich möchte eine sehr große Textdatei (>300 mb, daher kann ich sie hier nicht für euch zum test hochladen) als df einlesen. Die Datei besteht aus Koordinaten, die jeweils durch tabs getrennt sind. Dabei gibt es etwa 4000 Spalten und 5000 Zeilen.


Nun werden die Einträge in Python allerdings nur in einer Spalte zusammengefasst, d.h. in Python ist die Dimension dann 20,000 x 1.

Ich verstehe es nicht, da ja offensichtlich in der Textdatei \n-Absätze vorhanden sein müssen.


Kann mir jemand helfen bitte?
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

Kannst du ein lauffähiges Minimalbeispiel zeigen, an dem das Problem deutlich wird? Kristallkugel ist gerade in Reparatur. ;-)
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

Hi,

eben hab ich was merkwürdiges festgestellt.

Ich habe von der Datei testweise mal alle Zeilen weggeschnitten, bis auf die ersten 10. Komischerweise funktioniert es dann. Wenn ich nichts am Befehl ändere, allerdings die vollständige Datei einlese, habe ich wieder das Problem mit der 20,000 zu 1 Dimension.

https://1drv.ms/u/s!AkOZFcRMoGn2ga9zFRf ... w?e=adTZET


Hier liegen beide Textdateien. Ein mal die große, ein mal die kleine.
Lauffähiges Beispiel ist eigentlich nur:

Code: Alles auswählen

df = pd.read_table('L-PBF-2_a.txt',sep="\t") 
print(df)

Vielleicht könnt ihr etwas damit anfangen.

Besten Dank
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

ich denke es liegt daran, dass nach absolut jedem Eintrag ein Tab ist. Ich müsste diesen am Ende jeder Zeile druch einen Absatz ersetzen.....nur..wie?
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Hast du mal geschaut, ob das, was du denkst auch wirklich so ist?
Also, dass es die selbe Anzahl von Spalten je Zeile gibt?

Ungetestet:

Code: Alles auswählen

with open('L-PBF-2_a.txt', "r") as f:
    enumerator = enumerate(f)
    _, line = next(enumerator)
    column_count = len(line.split("\t"))
    for line_number, line in enumerator:
        current_column_count = len(line.split("\t"))
        if current_column_count != column_count:
            print(
                f"Line {line_number} has not {colum_count} colums, "
                f"it has {current_column_count}."
            )
    print(f"I have seen {line_number} rows")
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

sparrow hat geschrieben: Freitag 3. Dezember 2021, 19:00 Hast du mal geschaut, ob das, was du denkst auch wirklich so ist?
Also, dass es die selbe Anzahl von Spalten je Zeile gibt?

Ungetestet:

Code: Alles auswählen

with open('L-PBF-2_a.txt', "r") as f:
    enumerator = enumerate(f)
    _, line = next(enumerator)
    column_count = len(line.split("\t"))
    for line_number, line in enumerator:
        current_column_count = len(line.split("\t"))
        if current_column_count != column_count:
            print(
                f"Line {line_number} has not {colum_count} colums, "
                f"it has {current_column_count}."
            )
    print(f"I have seen {line_number} rows")


Hi! Danke schonmal,

bei der gekürzten Datei funktioniert es, bei der langen erscheint folgender Fehler:

Traceback (most recent call last):
File "......../main.py", line 77, in <module>
f"Line {line_number} has not {colum_count} colums, "
NameError: name 'colum_count' is not defined



verstehe ich nciht
G-Rizzle
User
Beiträge: 90
Registriert: Donnerstag 18. Februar 2021, 12:26

PEINLICHER FEHLER VON MIR


tut mir leid, ich hab den fehler. ich hab nicht bemerkt dass in jeder der Dateien ganz oben links ein "DATA" stand. Dementsprechend hat das den Ton vorgegeben, dass nur eine Spalte vorliegt.

sorry und danke für eure mühe
Antworten