Ich möchte eine .csv-Datei mit 3 Spalten importieren, wobei Spalte 1 meine X-Werte, Spalte 2 eine Serie und Spalte 3 eine andere ist. Ich möchte beide Serien in einem Diagramm darstellen, aber wenn ich versuche, die CSV-Datei zu lesen und zu plotten, wird ein ValueError zurückgegeben (siehe unten).genfromtext lesen .csv mit 3 Spalten gibt ValueError 'hat 3 Spalten statt 2'?
import matplotlib.pyplot as plt
import numpy as np
dir = ""
file = "fig1data.csv"
fn = np.genfromtxt(file, delimiter=',')
x=fn[:,0]
y1=fn[:,1]
y2=fn[:,2]
plt.plot(x, y1, 'b', label=r"1913-1942 anomaly")
plt.plot(x, y2, 'r', label=r"$blah$")
plt.show()
gibt den Fehler:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-56-0d8440895d40> in <module>()
4 dir = ""
5 file = "fig1data.csv"
----> 6 fn = np.genfromtxt(file, delimiter=',')
7 x=fn[:,0]
8 y1=fn[:,1]
/usr/lib64/python3.4/site-packages/numpy/lib/npyio.py in genfromtxt(fname, dtype, comments, delimiter, skip_header, skip_footer, converters, missing_values, filling_values, usecols, names, excludelist, deletechars, replace_space, autostrip, case_sensitive, defaultfmt, unpack, usemask, loose, invalid_raise, max_rows)
1767 # Raise an exception ?
1768 if invalid_raise:
-> 1769 raise ValueError(errmsg)
1770 # Issue a warning ?
1771 else:
ValueError: Some errors were detected !
Line #2 (got 3 columns instead of 2)
Line #3 (got 3 columns instead of 2)
Line #4 (got 3 columns instead of 2)
Line #5 (got 3 columns instead of 2)
Line #6 (got 3 columns instead of 2)
@DavidG Ja, ich glaube schon. Ich habe 3 Spalten mit Kopfzeilen. Das einzige Problem, das ich sehen konnte, wären fehlende Werte. Siehe die ersten paar Zeilen meiner Daten: Jahr Anomalie, global 1880 ,, 1881,3.178055556, 1882,0.678055556, -4,6 1883 -,980277778, -4,7 1884 -2,888611111, -5,2 1885 , 1.444722222, -5.9 – vitalie
@vitalien Sind die beiden Kommata nach "1880" in Ihrer ersten Datenzeile ein Tippfehler? Denn es sollte nur ein einziges Komma geben, das Elemente in einer Reihe trennt. Sind Ihre Zeilen auch durch Zeilenumbrüche oder Leerzeichen getrennt? Könnten Sie Ihre ersten paar Zeilen wie oben beschrieben posten, um das klarzustellen? –
Ich habe es tatsächlich behoben, Ihr Kommentar hat dazu beigetragen, dass aus irgendeinem Grund keine Header einen Fehler verursacht haben. Ich wechselte zu np.loadtxt() und fügte Header hinzu, die das Problem behob. Für die Aufzeichnung, diese beiden Kommas waren kein Tippfehler, sie sollen ein 3-Spalten-Feld, das zwei fehlende Datenpunkte hat – vitalie