Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

404
Vistas
AttributeError: 'DataFrame' object has no attribute 'ix'

I am getting this error when I try to use the .ix attribute of a pandas data frame to pull out a column, e.g. df.ix[:, 'col_header'].

AttributeError: 'DataFrame' object has no attribute 'ix'

The script worked this morning, but this afternoon I ran it in a new Linux environment with a fresh install of Pandas. Has anybody else seen this error before? I've searched here and elsewhere but can't find it.

over 4 years ago · Santiago Trujillo
15 Respuestas
Responde la pregunta

0

A fresh install today (Jan 30, 2020) would install pd.__version__ == '1.0.0'. With that comes a removal of many deprecated features.

Removed Series.ix and DataFrame.ix (GH26438)

over 4 years ago · Santiago Trujillo Denunciar

0

had same issue with pandas 1.0.0, this worked for me

Open Anaconda Prompt (cmd) as Administrator, then

conda install pandas==0.25.1

Your newer pandas version will be overwritten by older one!

over 4 years ago · Santiago Trujillo Denunciar

0

one column:

df[['sepal width']]

two columns:

df[['sepal width','petal width']]

special columns(select column include 'length'):

df[[c for c in df.columns if 'length' in c]]
over 4 years ago · Santiago Trujillo Denunciar

0

try df.iloc[:, integer]

.ix is deprecated

By the way, df.loc[:,'col_header'] is for str or Boolean indexing

over 4 years ago · Santiago Trujillo Denunciar

0

Change .ix to .loc and it should work correctly.

over 4 years ago · Santiago Trujillo Denunciar

0

I used .loc() instead of .ix() and it worked.

over 4 years ago · Santiago Trujillo Denunciar

0

Try following steps: 1) installing new version of Pandas 2) use .loc instead of .ix

over 4 years ago · Santiago Trujillo Denunciar

0

I am reading the book 'Python for data analysis' by Wes McKinney and I met the same problem of Dataframe.ix[] while retrieving the rows with index. I replace ix by iloc and it works perfectly.

over 4 years ago · Santiago Trujillo Denunciar

0

I'm using .ix as I have mixed indexing, labels and integers. .loc() does not solve the issue as well as .iloc; both are ending in errors. I was intentionally using .ix because it was the fast lane when the index is a mix of integers and labels.

As example a df like:

enter image description here

My way out is to back-up columns and index, replace with integers, use .iat and then restore the df as it was at the beginning. I have something like:

# Save the df and replace indec and columns with integers
lista_colonne = list(df.columns)  
df.columns = range(0,len(lista_colonne))    
nome_indice = df.index.name
lista_indice = list(df.index)
df['Indice'] = range(0,len(lista_indice))
df.index = df['Indice']
del df['Indice']

  ... indexing here with .iat in place of .ix


# Now back as it was
df.columns = lista_colonne
df['Indice'] = lista_indice
df.index = df['Indice']
del df['Indice']
df.index.name = nome_indice

Bye, Fabio.

over 4 years ago · Santiago Trujillo Denunciar

0

  1. Guys try to update current pandas
  2. replace .ix with .iloc after replacing its works well for me For details refers documentations
over 4 years ago · Santiago Trujillo Denunciar

0

I had to do this:

returns.ix['2015-01-01':'2015-12-31'].std()

After much ado I made it happen using this:

returns.xs(key='2015',axis=0).std()

I believe at least for this case we can use cross section and filter using 2015 as key.

over 4 years ago · Santiago Trujillo Denunciar

0

Yes, that's right. Replace df.ix[] with df.iloc[] or df.loc[]

over 4 years ago · Santiago Trujillo Denunciar

0

it works for me

Use df.loc[] instade of ix[]

over 4 years ago · Santiago Trujillo Denunciar

0

replace .ix with .iloc after replacing its works well for me also

predictions_ARIMA_log = pd.Series(ts_log.iloc[0], index=ts_log.index)

over 4 years ago · Santiago Trujillo Denunciar

0

as ix is removed

use iloc or loc inplace of ix.

use .loc if you have string or userdefined indexing.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda