2015-05-26 2 views
0

Я хотел бы выбрать все данные из dataframe после определенного дня года, каждый год, но также и в течение этого года. Например, все данные после летнего солнцестояния, 20 июня каждый год, до 31 декабря каждый год. Я думал, что маска сделает это, поэтому я попробовал.pandas python выбрать все данные после дня года

import pandas as pd 
import numpy.random as npr 
rng = pd.date_range('1/1/1990', periods=365*10, freq='D') 
df = pd.DataFrame(npr.randn(len(rng)), index=rng) 
df1 = df[(df.index.month>=6) & (df.index.day > 20)] 
print df1 

Конечно, это выбирает 21 по 30/31 каждый месяц. Я хотел бы получить все данные после 20 июня (например, в том числе 1 июля) по 31 декабря

ответ

1

Вы можете использовать отдельные условия для июня и все после июня, и объединить их, как это:

df2 = df[((df.index.month == 6) & (df.index.day > 20)) | (df.index.month > 6)]

+0

Yup, это. Благодаря! – marathonman4202

Смежные вопросы