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

По сути, переместите последний столбец в первую позицию. Как бы я сделал это в Python, используя только индексы столбцов, предпочтительно в одной строке?

4
HMK 9 Янв 2017 в 05:06

3 ответа

Лучший ответ

Вы можете использовать .iloc[]:

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

Или: data = data[[7] + list(range(7))]


Просто имейте в виду, что

  • в питоне индекс равен нулю, а R равен единице;
  • R использует вектор для индексации, в то время как Python использует список.
5
Psidom 9 Янв 2017 в 02:21

Использовать numpy.r_
Это должно было позволить R подобный синтаксис для нарезки массива. Следовательно, r_

Предполагая, что ваш фрейм данных называется df

import numpy as np
import pandas as pd

df = df.iloc[:, np.r_[8, 1:7]]
6
piRSquared 9 Янв 2017 в 02:10
data = data[[7,0,1,2,3,4,5,6]]

Если у вас много столбцов ..

data = data[list(df.columns.tolist()[-1]) + df.columns.tolist()[:-1]]
2
JohnE 9 Янв 2017 в 03:05