Parece que no puedo encontrar una forma elegante de index a pandas.DataFrame
por un índice entero. En el siguiente ejemplo, quiero obtener el valor 'a' del primer elemento de la columna 'A'
.Indexar un dataframe de pandas por número entero
import pandas
df = pandas.DataFrame(
{'A':['a','b', 'c'], 'B':['f', 'g', 'h']},
index=[10,20,30]
)
yo esperaría df['A'].ix[0]
y df['A'][10]
tanto para volver 'a'
. df['A'][10]
devuelve 'a'
, pero df['A'].ix[0]
arroja un KeyError: 0
. La única forma en que podría pensar en obtener el valor 'a'
basado en el índice 0 es usar el siguiente enfoque.
df['A'][df['A'].index[0]]
¿Hay un camino más corto para llegar 'a'
fuera de la trama de datos, utilizando el índice 0?
actualización
A partir de pandas 0.11 hay una otra manera de index by integer.
df.iloc[0] # integer based, gives the first row
df.loc[10] # label based, gives the row with label 10
Este supersedes el enfoque irow
.
Creo que es 'df ['A']. Iget (0)' porque 'df ['A']' es una 'Serie', que no tiene' irow'. – Eike
irow() está en desuso. Use iloc [] para la indexación basada en posición. – herrlich10