Python >> Python tutoriál >  >> Python Tag >> Pandas

Python pandas:Proč df.iloc[:, :-1].values ​​pro moje tréninková data vybírá pouze do předposledního sloupce?

Myslím, že v df máte pouze dva sloupce , protože pokud je sloupců více, iloc vybrat všechny sloupce bez posledního:

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,5,6],
                   'C':[7,8,9],
                   'D':[1,3,5],
                   'E':[5,3,6],
                   'F':[7,4,3]})

print (df)
   A  B  C  D  E  F
0  1  4  7  1  5  7
1  2  5  8  3  3  4
2  3  6  9  5  6  3

print(df.iloc[:, :-1])
   A  B  C  D  E
0  1  4  7  1  5
1  2  5  8  3  3
2  3  6  9  5  6

X = df.iloc[:, :-1].values
print (X)
[[1 4 7 1 5]
 [2 5 8 3 3]
 [3 6 9 5 6]]

print (X.shape)
(3, 5)

Jen pro upřesnění

S ohledem na syntaxi pythonu byla tato otázka zodpovězena zde.

Syntaxe rozdělení seznamu Python uvádí, že pro a:b dostane a a vše až po, kromě b . a: dostane a a vše po něm. :b získá vše před b ale ne b . Index seznamu -1 odkazuje na poslední prvek. :-1 dodržuje stejné standardy jako výše v tom, že dostane vše před poslední prvek, ale ne poslední prvek. Pokud chcete zahrnout poslední prvek, použijte : .


Další příspěvek