2

I have a date array dateref and want to get the values of pandas dataframe data filtered by dateref (only the values for the dates included in dateref) :

I tried this, but it does not work:

  df: Out[36]: rec.array([ (datetime.date(2007, 4, 10), 105), 

  df[df.date== dateref ]

data.date : array of date

data.value : array of values

EDIT: this one returns error

data[data.date.isin(dateref)] 
AttributeError: 'numpy.ndarray' object has no attribute 'isin'
  • 2
    Can you add [Minimal, Complete, and Verifiable example](http://stackoverflow.com/help/mcve)? – jezrael Apr 27 '16 at 14:37
  • data[data.date.isin(dateref)] returns :AttributeError: 'numpy.ndarray' object has no attribute 'isin' –  Apr 27 '16 at 14:42

1 Answers1

2

I think you need numpy.in1d:

data[np.in1d(data.date, dateref)] 

Sample:

import numpy as np
import datetime as datetime

test = np.array([datetime.date(2007, 4, 10), 
                 datetime.date(2007, 5, 10), 
                 datetime.date(2007, 6, 10)])

states = [datetime.date(2007, 4, 10), 
          datetime.date(2007, 5, 10)]

mask = np.in1d(test, states)
print mask
[ True  True False]

print test[mask]
[datetime.date(2007, 4, 10) datetime.date(2007, 5, 10)]
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252