¿Cuál sería el equivalente de Python / pandas de este código R para reorganizar las columnas de un dataframe?

data<-data[c(8,1:7)] 

Básicamente, mueva la última columna a la primera posición. ¿Cómo haría esto en Python usando solo índices de columna, preferiblemente en una sola línea?

Puedes usar .iloc[] :

 data = data.iloc[:, [7] + list(range(7))] 

O: data = data[[7] + list(range(7))]


Solo ten en cuenta que

  • en python el índice se basa en cero, mientras que R se basa en uno;
  • R usa vector para la indexación, mientras que Python usa la lista.

usar numpy.r_
Esto fue pensado para permitir la syntax tipo R para el corte de matriz. De ahí el r_

Suponiendo que su dataframe se llama df

 import numpy as np import pandas as pd df = df.iloc[:, np.r_[8, 1:7]] 
 data = data[[7,0,1,2,3,4,5,6]] 

En caso de que tengas muchas columnas ..

 data = data[list(df.columns.tolist()[-1]) + df.columns.tolist()[:-1]]