Objective:
To create an Index that accommodates a pre-existing set of price data from a csv file. I can build an index using list comprehensions. If it’s done in that way, the construction would give me a filtered list of length 86,772–when run over 1/3/2007-8/30/2012 for 42 times (i.e. 10 minute intervals). However, my data of prices coming from the csv is length: 62,034. Observe that the difference in length is due to data cleaning issues.
That said, I am not sure how to overcome the apparent mismatch between the real data and this pre-built (list comp) dataframe.
Attempt:
Am I using the first two lines incorrectly?
data=pd.read_csv('___.csv', parse_dates={'datetime':[0,1]}).set_index('datetime')
dt_index = pd.DatetimeIndex([datetime.combine(i.date,i.time) for i in data.index])
ts = pd.Series(data.prices.values, dt_index)
Questions:
-
As I understand it, I should use ‘combine’ since I want the index construction to be completely informed by my csv file. And, ‘combine’ returns a new datetime object whose date components are equal to the given date object’s, and whose time components are equal to the given time object’s.
-
When I parse_dates, is it lumping the time and date together and considering it to be a ‘date’?
-
Is there a better way to achieve the stated objective?
Traceback Error:
AttributeError: ‘unicode’ object has no attribute ‘date’
You can write this neatly as follows:
Here’s an example:
You can groupby date like so (similar to this example from the docs):
Where prices.csv contains: