Warum gibt pandas dataframe 2 Spalten zurück, wenn nur 1 ausgewählt ist [duplizieren]
Beim Erstellen einiger Diagramme mit matplotlib habe ich ein seltsames Verhalten von Pandas festgestellt. Wenn ich nur eine Spalte auswähle, werden 2 zurückgegeben.
import pandas as pd
import io
data = io.StringIO("""time_0,1,time_1,2,time_2,0,time_3,3
-0.002,-0.1225,-0.002,-0.0904,-0.002,0.0331,-0.002,0.,
0.0,-0.1225,0.,-0.0904,0.,0.0331,0.,0.,
0.002,-0.1224,0.002,-0.0904,0.002,0.0331,0.002,0.,
0.004,-0.1225,0.004,-0.0904,0.004,0.0331,0.004,0.,""")
df = pd.read_csv(data)
print(df["time_0"])
Ausgabe:
-0.002 -0.1225 0.000
-0.1225
0.002 -0.1224
0.004 -0.1225
Name: time_0, dtype: float64
Es werden Werte aus beiden Spalten "time_0" und "1" angezeigt, es wurde jedoch nur "time_0" ausgewählt. Ist das ein Fehler oder eine Funktion?
Antworten
Ihr Datenrahmen gibt nur eine Zeile zurück, prioniert aber auch den Index, der mit der Spalte "1" identisch ist.
df
Out[3]:
time_0 1 time_1 2 time_2 0 time_3 3
-0.002 -0.1225 -0.002 -0.0904 -0.002 0.0331 -0.002 0.0 NaN
0.000 -0.1225 0.000 -0.0904 0.000 0.0331 0.000 0.0 NaN
0.002 -0.1224 0.002 -0.0904 0.002 0.0331 0.002 0.0 NaN
0.004 -0.1225 0.004 -0.0904 0.004 0.0331 0.004 0.0 NaN
Es scheint, als würde ungewollt die erste Spalte als Index verwendet. Die letzte Spalte wird als Nanowert verwendet, da ,
in jeder Zeile zusätzliche Werte enthalten sind .
Versuchen Sie, Folgendes zu entfernen ,
:
import pandas as pd
import io
data = io.StringIO("""time_0,1,time_1,2,time_2,0,time_3,3
-0.002,-0.1225,-0.002,-0.0904,-0.002,0.0331,-0.002,0.
0.0,-0.1225,0.,-0.0904,0.,0.0331,0.,0.
0.002,-0.1224,0.002,-0.0904,0.002,0.0331,0.002,0.
0.004,-0.1225,0.004,-0.0904,0.004,0.0331,0.004,0.""")
df = pd.read_csv(data)
print(df["time_0"])
Dieser Code wird gedruckt
0 -0.002
1 0.000
2 0.002
3 0.004
Name: time_0, dtype: float64