Выберите фрейм данных pandas за несколько лет

#python #pandas #dataframe #subset

#python #pandas #фрейм данных #подмножество

Вопрос:

Я пытаюсь выбрать несколько лет из фрейма данных в месячном разрешении.

 import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import netCDF4 as nc

#-- open net-cdf and read in variables
data = nc.Dataset('test.nc')

time = nc.num2date(data.variables['Time'][:],
                   data.variables['Time'].units)

df = pd.DataFrame(data.variables['mgpp'][:,0,0], columns=['mgpp'])

df['dates'] = time
df = df.set_index('dates')
print(df.head())
  

Вот как выглядит head:

                 mgpp
dates               
1901-01-01  0.040735
1901-02-01  0.041172
1901-03-01  0.053889
1901-04-01  0.066906
  

Теперь мне удалось извлечь один год:

 df_cp = df[df.index.year == 2001]
  

но как бы мне извлечь несколько лет, скажем, 1997, 2001 и 2007, и сохранить их в одном фрейме данных? Существует ли решение в одну / две строки? Моя единственная идея на данный момент — выполнить итерацию, а затем объединить фреймы данных, но, возможно, есть лучшее решение!

Комментарии:

1. df[df.index.year.isin([1997, 2001, 2007])]

2. Спасибо! Это то, что я искал