Мне любопытно, что last () и first () делают в этом конкретном c экземпляре (при привязке к повторной выборке). Поправьте меня, если я ошибаюсь, но я понимаю, если вы передаете аргументы в первый и последний, например, 3; он возвращает первые 3 месяца или первые 3 года.
В этом случае, так как я не передаю никаких аргументов в первый и последний, что на самом деле происходит, когда я делаю повторную выборку? Я знаю, что если я произвожу выборку с помощью цепочки .mean (), я буду повторять выборку по годам со средним баллом за усреднение по всем месяцам, но что происходит, когда я использую last ()?
Более важно Почему first () и last () дают мне разные ответы в этом контексте? Я вижу, что численно они не равны.
т.е.: post2008.resample (). First ()! = Post2008.resample (). Last ()
Tldr:
i) Что делают .first () и .last ()
ii) Что делают .first () и .last () в этом случае, когда связаны с повторной выборкой
iii) Почему .resample (). first ()! = .resample (). last ()
Это код перед агрегацией
# Read 'GDP.csv' into a DataFrame: gdp
gdp = pd.read_csv('GDP.csv', index_col='DATE', parse_dates=True)
# Slice all the gdp data from 2008 onward: post2008
post2008 = gdp.loc['2008-01-01':,:]
# Print the last 8 rows of post2008
print(post2008.tail(8))
Вот что выводит print (post2008.tail (8)):
VALUE
DATE
2014-07-01 17569.4
2014-10-01 17692.2
2015-01-01 17783.6
2015-04-01 17998.3
2015-07-01 18141.9
2015-10-01 18222.8
2016-01-01 18281.6
2016-04-01 18436.5
Вот код, который ресэмплирует и агрегирует по last ()
# Resample post2008 by year, keeping last(): yearly
yearly = post2008.resample('A').last()
print(yearly)
Это то же, что и год, когда его post2008.resample ('A'). Last ()
VALUE
DATE
2008-12-31 14549.9
2009-12-31 14566.5
2010-12-31 15230.2
2011-12-31 15785.3
2012-12-31 16297.3
2013-12-31 16999.9
2014-12-31 17692.2
2015-12-31 18222.8
2016-12-31 18436.5
Вот код, который ресэмплирует и агрегирует по first ()
# Resample post2008 by year, keeping first(): yearly
yearly = post2008.resample('A').first()
print(yearly)
Это то же, что и год, когда его post2008.resample ('A'). First ()
VALUE
DATE
2008-12-31 14668.4
2009-12-31 14383.9
2010-12-31 14681.1
2011-12-31 15238.4
2012-12-31 15973.9
2013-12-31 16475.4
2014-12-31 17025.2
2015-12-31 17783.6
2016-12-31 18281.6