2016-08-01 6 views
2

Ich versuche zu klären, wie Pandas Methoden zum Aufrufen von Spalten und Zeilen in einem Dataframe verwalten können. Ein Beispiel wird mein ProblemEine einfache Methode zum Auswählen von Spalten nach Position

dic = {'a': [1, 5, 2, 7], 'b': [6, 8, 4, 2], 'c': [5, 3, 2, 7]} 
df = pd.DataFrame(dic, index = ['e', 'f', 'g', 'h']) 

als

df = 
    a b c 
e 1 6 5 
f 5 8 3 
g 2 4 2 
h 7 2 7 

nun klären, ob ich Spalte auswählen möchten ‚a‘ Ich habe nur

df['a'] 

während eingeben, wenn ich will Zeile auszuwählen 'e' muss ich die ".loc" -Methode verwenden

df.loc['e'] 

Wenn ich weiß nicht, den Namen der Reihe, aber gerade dann ist es Position (0 in diesem Fall) als ich die „ILoc“ Methode

df.iloc[0] 

Was fehlt es sieht aus wie eine Methode für den Aufruf verwenden kann Spalten nach Position und nicht nach Namen, etwas, das das "Äquivalent für Spalten der 'Iloc' Methode für Zeilen" ist. Die einzige Möglichkeit, die ich finden kann, dies zu tun ist

df[df.keys()[0]] 

ist es so etwas wie

df.ilocColumn[0] 

?

Antwort

1

Sie können : hinzufügen, da erste Argument Position der ausgewählten Indizes und der zweiten Position der Spalten in Funktion iloc ist:

Und : bedeutet alle Indizes in DataFrame:

print (df.iloc[:,0]) 
e 1 
f 5 
g 2 
h 7 
Name: a, dtype: int64 

Wenn der erste Index auswählen muss und erster Spaltenwert:

print (df.iloc[0,0]) 
1 

Lösung mit ix Arbeit schön, wenn nötig mit Namen und Spalte von Position wählt Index:

print (df.ix['e',0]) 
1 
+0

Und was ist mit dem Befehl df.iloc [:] [0] es sieht aus wie das einige Arbeit als df tun. iloc [: 0] haben wir zwei verschiedene Möglichkeiten, etwas zu tun, oder gibt es einen Unterschied zwischen ihnen? –