Ich lade einige maschinelle Lerndaten aus einer CSV-Datei. Die ersten beiden Spalten sind Beobachtungen und die verbleibenden Spalten sind Merkmale.
Derzeit mache ich Folgendes:
data = pandas.read_csv('mydata.csv')
das gibt so etwas wie:
data = pandas.DataFrame(np.random.rand(10,5), columns = list('abcde'))
Ich mag diesen Datenrahmen in zwei Datenrahmen schneiden: eine mit den Spalten enthalten a
und b
und man die Spalten enthält c
, d
und e
.
Es ist nicht möglich, so etwas zu schreiben
observations = data[:'c']
features = data['c':]
Ich bin mir nicht sicher, was die beste Methode ist. Benötige ich eine pd.Panel
?
Übrigens finde ich die Indizierung von Datenrahmen ziemlich inkonsistent: data['a']
ist erlaubt, aber data[0]
nicht. Auf der anderen Seite data['a':]
ist das nicht erlaubt aber data[0:]
. Gibt es dafür einen praktischen Grund? Dies ist wirklich verwirrend, wenn Spalten von Int indiziert werdendata[0] != data[0:1]
df[5:10]
hinzugefügt , z. B. zum Auswählen von Zeilen ( pandas.pydata.org/pandas-docs/stable/… )