Допустим, у меня есть следующее pandas .DataFrame:
df = pd.DataFrame(
{'avg': list(range(100, 900, 100)), 'median': list(range(150, 950, 100))},
index=pd.date_range('2011-12-01', periods=8, freq='3M')
)
print(df)
avg median
2011-12-31 100 150
2012-03-31 200 250
2012-06-30 300 350
2012-09-30 400 450
2012-12-31 500 550
2013-03-31 600 650
2013-06-30 700 750
2013-09-30 800 850
Когда я хочу извлечь один год из фрейма данных, я использую .loc[]
, например:
print(df.loc['2012'])
avg median
2012-03-31 200 250
2012-06-30 300 350
2012-09-30 400 450
2012-12-31 500 550
Но когда я хочу исключить один год из фрейма данных, единственный код, который действительно работает для меня, это следующий:
print(df.loc[df.index.to_period('Y') != 2012])
avg median
2011-12-31 100 150
2013-03-31 600 650
2013-06-30 700 750
2013-09-30 800 850
Мне кажется, это довольно сложно, по сравнению с предыдущий, где я выбирал один год из фрейма данных. Итак, я хотел спросить, есть ли другое простое решение, которое я бы пропустил? Примерно так:
df.loc[~ '2012']