Non riesco a trovare un modo elegante per index a pandas.DataFrame
da un indice intero. Nell'esempio seguente voglio ottenere il valore 'a' dal primo elemento della colonna 'A'
.Indicizzazione di un dataframe panda per intero
import pandas
df = pandas.DataFrame(
{'A':['a','b', 'c'], 'B':['f', 'g', 'h']},
index=[10,20,30]
)
mi aspetterei df['A'].ix[0]
e df['A'][10]
sia per tornare 'a'
. Il df['A'][10]
restituisce 'a'
, ma df['A'].ix[0]
genera un KeyError: 0
. L'unico modo in cui potrei pensare di ottenere il valore 'a'
in base all'indice 0 è di utilizzare il seguente approccio.
df['A'][df['A'].index[0]]
C'è un modo più breve per ottenere 'a'
dalla dataframe, utilizzando l'indice 0?
Aggiornamento
Come di panda 0,11 c'è un altro modo per index by integer.
df.iloc[0] # integer based, gives the first row
df.loc[10] # label based, gives the row with label 10
Questa supersedes l'approccio irow
.
Penso che sia 'df ['A']. Iget (0)' perché 'df ['A']' è una 'Serie', che non ha' irow'. – Eike
irow() è deprecato. Usa iloc [] per l'indicizzazione basata sulla posizione. – herrlich10