#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. Спасибо! Это то, что я искал