2017-01-19 15 views
0

私は2つの変数ID、DATEを持つデータセットを持っています。私は2つの条件を満たす行を取得するために次のコードを使用しています。2つの条件を評価するパンダ

1)それが特定の日付範囲にしなければならない)IDの最初の発生

2でなければなりません。

data_2 = data_1.groupby('ID').first() & datetime.date(2012,1,1) < data_1['date'] < datetime.date(2012,2,25) 

投げ型エラーです。私はなぜ型エラーを取得しているかを提案することができますか?

ありがとうございました。

+1

'datetime.date(2012,2,31)は'も、日付を修正お返事のおかげでは、同じエラーを与える2月 –

+0

の範囲外です。私は私の質問を編集します。 – Haritha

+1

まず、各条件をかっこの間に入れなければならないと思います。 '(data_1.groupby( 'ID')。first())&(...)'。第2に、私はあなたの2番目の条件を2つに分割するべきだと思います: '(datetime.date(2012,1,1) Mikk

答えて

0
np.random.seed(123) 
df = pd.DataFrame({'ID':np.random.choice(list('ABCD'),50),'DATE':pd.date_range('2012-01-01',periods=50)}) 

mask_first = df.DATE.isin(df.groupby('ID')['DATE'].first()) 
    mask_range = (df.DATE >= pd.to_datetime('2012-01-05')) & (df.DATE <= pd.to_datetime('2012-01-07')) 
    df[mask_first & mask_range] 

出力:

 DATE ID 
4 2012-01-05 A 
関連する問題