Как получить доступ к последнему элементу серии Pandas? - PullRequest
1 голос
/ 24 мая 2019

Давайте рассмотрим следующий фрейм данных:

import pandas as pd

d = {'col1': [1, 2, 3], 'col2': [3, 4, 5]}
df=pd.DataFrame(data=d)

Если я хочу получить доступ к первому элементу в серии панд df['col1'], я могу просто перейти df['col1'][0].

Нокак я могу получить доступ к элементу last в этой серии?Я попытался df['col1'][-1], который возвращает следующую ошибку:

KeyError: -1L

Я знаю, что я мог бы пойти на что-то вроде df['col1'][len(df)-1], но почему наоборотиндексация здесь невозможна?

Ответы [ 2 ]

3 голосов
/ 24 мая 2019

Для выбора последнего значения необходимо Series.iloc или Series.iat, поскольку df['col1'] return Series:

print (df['col1'].iloc[-1])
3
print (df['col1'].iat[-1])
3

Или преобразовать Series в массив numy и выбрать последний:

print (df['col1'].values[-1])
3

Или используйте DataFrame.iloc или DataFrame.iat - но необходимо положение столбца на Index.get_loc:

print (df.iloc[-1, df.columns.get_loc('col1')])
3
print (df.iat[-1, df.columns.get_loc('col1')])
3

Или возможно использовать последнее значение индекса (необходимо не дублировать) и выбрать DataFrame.loc:

print (df.loc[df.index[-1], 'col1'])
3
1 голос
/ 24 мая 2019

Вы также можете использовать tail:

print(df['col1'].tail(1).item())

Выход:

3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...