2017-11-10 8 views
1

Ich habe ein Problem mit dem Lesen in einer CSV-Datei mit # Zeichen. Die CSV sieht so aus.Genfromtxt überspringt Infromation mit #

aaa;;xxx;aaa;aaa;aaa;xxx;xxx;xxx;xxx;xxx;xxx;aaa 

mit aaa als String und xxx als float. Aber in dieser Datei gibt es eine Zeile wie folgt aus:

aaa;;aaa;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A 

Python sagt immer wieder, dass diese Linie 4 Spalten haben würde statt 13 interpretiert er die # als Kommentar und überspringt den Rest davon. Ich versuchte:

kwargs = dict(delimiter=';', 
      dtype=np.str, 
      skip_header=11, 
      usecols= range(1,14), 
      missing_values = "#N/A", 
      filling_values = "0") 
data = np.genfromtxt(TestFile, **kwargs) 

aber immer noch konnte es nicht zur Arbeit bekommen.

Haben Sie eine Idee, wie ich das schaffen könnte?

+0

Wie lesen und bewerten Sie die Datei? Zeig uns den Code. – mrCarnivore

+0

Was meinen Sie mit Lesen und Auswerten der Datei? Ich habe es durchgesehen und es enthält alle notwendigen Informationen – Toggo

+0

Zeigen Sie uns den Code, den Sie verwenden, um die Datei zu lesen und jeden Wert aus der CSV zu extrahieren. – mrCarnivore

Antwort

0

Ändern Sie das Wörterbuch,

kwargs = dict(delimiter=';', 
       dtype=np.str, 
       skip_header=11, 
       usecols= range(1,14), 
       missing_values = "#N/A", 
       filling_values = "0", 
       comments=None) 

Jetzt sollte dies funktionieren. Ich bin mir jedoch nicht sicher, warum Sie die Spalten 1-13 verwenden, wenn nur Spalten von 0-12 vorhanden sind.

+0

Vielen Dank für Ihre Antwort. Das funktioniert für mich. Ich lese Spalten 1-13, weil die echte CSV mehr Spalten hat ... – Toggo

Verwandte Themen