name iloc how example column and python pandas

python - how - ¿Es.ix() siempre mejor que.loc() y.iloc() ya que es más rápido y admite el acceso a enteros y etiquetas?



python loc and iloc (1)

Consulte el documento Diferentes opciones para la indexación , indica claramente cuándo y por qué debe usar .loc, .iloc sobre .ix , se trata de un caso de uso explícito:

.ix admite acceso mixto entero y basado en etiquetas. Se basa principalmente en etiquetas, pero recurrirá al acceso posicional entero a menos que el eje correspondiente sea de tipo entero. .ix es el más general y admitirá cualquiera de las entradas en .loc y .iloc. .ix también admite esquemas de etiquetas de punto flotante. .ix es excepcionalmente útil cuando se trata de índices jerárquicos mixtos posicionales y basados ​​en etiquetas.

Sin embargo, cuando un eje está basado en enteros, SOLO se admite el acceso basado en etiquetas y no el acceso posicional. Por lo tanto, en tales casos, generalmente es mejor ser explícito y usar .iloc o .loc.

Espero que esto ayude.

Actualización 22 mar 2017

Gracias al comentario de @Alexander, Pandas va a desaprobar ix en 0.20 , detalles here .

Una de las razones principales es que la mezcla de índices: posicional y de etiqueta (usando efectivamente ix ) ha sido una fuente importante de problemas para los usuarios.

Se espera que migre para usar iloc y loc lugar, aquí hay un enlace sobre cómo convertir el código .

Estoy aprendiendo la biblioteca de pandas Python. Viniendo de un fondo R, las funciones de indexación y selección parecen más complicadas de lo necesario. Entiendo que .loc () solo se basa en etiquetas y .iloc () solo se basa en enteros.

¿Por qué debería usar .loc () y .iloc () si .ix () es más rápido y admite el acceso a enteros y etiquetas?