Dlaczego panda dataframe zwraca 2 kolumny, gdy wybrano tylko 1 [duplikat]
Nov 23 2020
Podczas tworzenia niektórych wykresów za pomocą matplotlib zauważyłem dziwne zachowanie pand, gdy zaznaczę tylko 1 kolumnę, zwraca 2.
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"])
Wynik:
-0,002 -0,1225
0,000 -0,1225
0,002 -0,1224
0,004 -0,1225
Nazwa: czas_0, dtyp: float64
Pokazuje wartości z obu kolumn „time_0” i „1”, ale wybrano tylko „time_0”. Czy to błąd czy funkcja?
Odpowiedzi
1 adirabargil Nov 23 2020 at 17:31
twoja ramka danych zwraca tylko jedną linię, ale zawiera również indeks, który jest taki sam jak kolumna "1"
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
wygląda na to, że nieumyślnie przyjmuje pierwszą kolumnę jako indeks ... pobiera ostatnią kolumnę jako wartość nan z powodu dodatkowych ,
w każdym wierszu ....
spróbuj usunąć ,
:
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"])
ten kod zostanie wydrukowany
0 -0.002
1 0.000
2 0.002
3 0.004
Name: time_0, dtype: float64