La soluzione, dovuta a @JohnE, consiste nell'utilizzare le parentesi quadre [0]
anzichécon iloc
.
qualche info in più dopo aver scavato attraverso un codice panda.
s1.iloc
fa iloc
aspetto di un metodo. Ma è un attributo e il valore dell'attributo è _iLocIndexer
. _iLocIndexer
è richiamabile con argomenti e restituisce una copia di se stesso ignorando qualsiasi args o kwargs (vedi pandas.core.indexing._NDFrameIndexer. chiamata nel codice panda). Questo è il motivo per cui s1.iloc(0)
è una chiamata valida.
Quando s1.iloc[0]
viene chiamato con parentesi quadre, un _iLocIndexer
viene creata un'istanza e la chiamata alla []
risultati dell'operatore in una chiamata al metodo '`GetItem s' il iLocIndexer
.
Lo stesso vale per gli altri indicizzatori - loc
, ix
, at
e iat
. Questi indicizzatori sono installati utilizzando setattr
nel metodo di classe pandas.core.generic.NDFrame._create_indexer.
parentesi quadre: '[0]' 'non (0)' – JohnE