Как выбрать последний столбец данных

24

Я немного искал ответ на этот вопрос, но все, что я могу понять, следующее:

df[df.columns[len(df.columns)-1]]

, который для меня кажется непоколебимым и не-пифоническим (и медленным?).

Какой самый простой способ выбрать данные для последнего столбца в кадре данных pandas без указания имени столбца?

    
задан Nate 20.10.2016 в 05:11
источник

5 ответов

48

Используйте iloc и выберите все строки ( : ) для последнего столбца ( -1 ):

df.iloc[:,-1]
    
ответ дан Boud 20.10.2016 в 06:36
источник
  • Я попытался это сделать и получил сообщение об ошибке «слишком много индексаторов», –  user287474 28.04.2018 в 04:12
8

Несколько похожая на вашу первоначальную попытку, но больше Pythonic, заключается в использовании стандартного соглашения об отрицательном индексировании Python для обратного отсчета с конца:

df[df.columns[-1]]
    
ответ дан jez 20.10.2016 в 05:17
источник
2
df.T.iloc[-1]
df.T.tail(1)
pd.Series(df.values[:, -1], name=df.columns[-1])
    
ответ дан piRSquared 20.10.2016 в 08:13
источник
  • Я не вижу никакого значения построения Серии явно из извлечения значений numpy по сравнению с прямым вызовом на iloc –  Boud 20.10.2016 в 14:42
  • @Boud, Есть много способов сделать это. Я просто пытался сбросить кучу. По общему признанию, третий вариант является самым слабым. –  piRSquared 20.10.2016 в 14:58
1

Это еще один способ сделать это. Я думаю, может быть, немного более общий:

df.ix[:,-1]
    
ответ дан user28929304981 24.03.2017 в 19:28
источник
  • В этом случае ваш ответ не рекомендуется, потому что вопрос запрашивает явно для последнего столбца, основанного на индексировании. ix смешивает ярлык и индекс доступа к индексу. См. Здесь больше. –  pansen 24.03.2017 в 20:10
  • В самом деле, кроме того, ix устарела. –  Archie 12.04.2018 в 09:59
1

Возникает вопрос: как выбрать последний столбец данных? Appart @piRSquared, никто не отвечает на вопрос.

Самый простой способ получить кадр данных с последним столбцом:

df.iloc[ :, -1:]
    
ответ дан alEx 24.06.2017 в 10:36
источник