In [1]:
import os
import glob
import pandas as pd
import numpy as np
import datetime as dt
base_dir = os.environ.get('QUANT_QUOTE_MINUTELY')

def get_symbols():
    """Get a list of all available symbols."""
    files = glob.glob(os.path.join(base_dir,'*'))
    syms = [os.path.splitext(os.path.split(f)[1])[0].split('_')[1] for f in files]
    return syms

def get_file(symbol,date):
    """Get the absolute filename for a symbols data."""
    symbol = symbol.lower()
    file = 'allstocks_' + date + '/table_' + symbol + '.csv'
    file = os.path.join(base_dir, file)
    if not os.path.isfile(file):
        raise IOError("File doesn't exist: %r" % file)
    return file

def get_minutely_data(symbol,start,end):
    data = pd.DataFrame()
    date_range = pd.date_range(start, end, freq='d')
    for date in date_range:
        try:
            date = date.strftime('%Y%m%d')
            f = get_file(symbol,date)
            df = pd.read_csv(f, header=None, 
                             names=['date','time','open','high','low','close','volume', 'splits','earnings','dividends'])
            df.date = pd.to_datetime(df.date, format = '%Y%m%d')

            get_time = lambda x: dt.timedelta(hours=x/100, minutes=(x-(x/100)*100))

            for i in range(len(df.time)):
                df.time.ix[i] = df.date.ix[i] + get_time(df.time.ix[i])

            #shifts from EST to UTC
            df.index = pd.DatetimeIndex(df.time) + dt.timedelta(hours=5)
            df = df.drop('date',axis = 1)
            df = df.drop('time', axis = 1)
            data = pd.concat([data,df],axis = 0)
        except:
            continue
    return data

In [3]:
data = get_minutely_data('aapl','20140102','20140725')

In [6]:
import matplotlib.pyplot as plt
%matplotlib inline
data.close.plot()


Out[6]:
<matplotlib.axes.AxesSubplot at 0x110123790>

In [9]:
get_minutely_data('aapl','2014-06-02','2014/07/25')


Out[9]:
open high low close volume splits earnings dividends
2014-06-02 12:00:00 90.7656 90.8542 90.7599 90.7885 2548.0000 7.00001 0 0
2014-06-02 12:01:00 90.7999 90.8013 90.7999 90.8013 3500.0000 7.00001 0 0
2014-06-02 12:02:00 90.7856 90.8571 90.7842 90.7842 2030.0000 7.00001 0 0
2014-06-02 12:03:00 90.7642 90.7713 90.7356 90.7356 8344.0100 7.00001 0 0
2014-06-02 12:04:00 90.7885 90.8142 90.7885 90.8142 3500.0000 7.00001 0 0
2014-06-02 12:05:00 90.8142 90.8142 90.8142 90.8142 11200.0000 7.00001 0 0
2014-06-02 12:06:00 90.8142 90.8142 90.7713 90.7713 3864.0000 7.00001 0 0
2014-06-02 12:07:00 90.7585 90.7713 90.7356 90.7713 3745.0000 7.00001 0 0
2014-06-02 12:08:00 90.7642 90.7642 90.7642 90.7642 3500.0000 7.00001 0 0
2014-06-02 12:09:00 90.8056 90.8056 90.7713 90.7842 1400.0000 7.00001 0 0
2014-06-02 12:10:00 90.7728 90.7842 90.7728 90.7842 1316.0000 7.00001 0 0
2014-06-02 12:11:00 90.7999 90.7999 90.7999 90.7999 1540.0000 7.00001 0 0
2014-06-02 12:12:00 90.7999 90.7999 90.7856 90.7856 6090.0100 7.00001 0 0
2014-06-02 12:14:00 90.7642 90.7642 90.7642 90.7642 1694.0000 7.00001 0 0
2014-06-02 12:16:00 90.7570 90.7642 90.7470 90.7570 4900.0000 7.00001 0 0
2014-06-02 12:19:00 90.7642 90.7642 90.7642 90.7642 91.0001 7.00001 0 0
2014-06-02 12:20:00 90.7499 90.7499 90.7499 90.7499 4200.0000 7.00001 0 0
2014-06-02 12:22:00 90.7499 90.7570 90.7499 90.7570 875.0010 7.00001 0 0
2014-06-02 12:23:00 90.7356 90.7356 90.7356 90.7356 700.0010 7.00001 0 0
2014-06-02 12:27:00 90.7513 90.7513 90.7513 90.7513 21.0000 7.00001 0 0
2014-06-02 12:28:00 90.7499 90.7499 90.7399 90.7399 1379.0000 7.00001 0 0
2014-06-02 12:30:00 90.7642 90.7642 90.7642 90.7642 1400.0000 7.00001 0 0
2014-06-02 12:31:00 90.7642 90.7642 90.7642 90.7642 525.0010 7.00001 0 0
2014-06-02 12:33:00 90.7642 90.7642 90.7499 90.7499 1330.0000 7.00001 0 0
2014-06-02 12:34:00 90.7570 90.7642 90.7499 90.7642 280.0000 7.00001 0 0
2014-06-02 12:35:00 90.7642 90.7642 90.7428 90.7428 196.0000 7.00001 0 0
2014-06-02 12:36:00 90.7499 90.7642 90.7356 90.7570 10535.0000 7.00001 0 0
2014-06-02 12:37:00 90.7428 90.7442 90.6956 90.7028 21672.0000 7.00001 0 0
2014-06-02 12:38:00 90.7042 90.7042 90.6770 90.6770 5075.0000 7.00001 0 0
2014-06-02 12:39:00 90.6671 90.6785 90.6499 90.6499 3500.0000 7.00001 0 0
... ... ... ... ... ... ... ... ...
2014-07-26 00:11:00 97.6000 97.6000 97.6000 97.6000 100.0000 1.00000 0 0
2014-07-26 00:14:00 97.6400 97.6400 97.6400 97.6400 50.0000 1.00000 0 0
2014-07-26 00:16:00 97.6300 97.6300 97.6000 97.6000 143.0000 1.00000 0 0
2014-07-26 00:17:00 97.6000 97.6000 97.6000 97.6000 465.0000 1.00000 0 0
2014-07-26 00:18:00 97.6300 97.6300 97.6300 97.6300 100.0000 1.00000 0 0
2014-07-26 00:20:00 97.6400 97.6400 97.6400 97.6400 300.0000 1.00000 0 0
2014-07-26 00:23:00 97.6400 97.6400 97.6300 97.6300 600.0000 1.00000 0 0
2014-07-26 00:25:00 97.6400 97.6400 97.6400 97.6400 100.0000 1.00000 0 0
2014-07-26 00:26:00 97.6400 97.6400 97.6400 97.6400 300.0000 1.00000 0 0
2014-07-26 00:27:00 97.6300 97.6300 97.6300 97.6300 200.0000 1.00000 0 0
2014-07-26 00:29:00 97.6100 97.6100 97.6100 97.6100 10.0000 1.00000 0 0
2014-07-26 00:30:00 97.6100 97.6100 97.6100 97.6100 200.0000 1.00000 0 0
2014-07-26 00:31:00 97.6300 97.6300 97.6100 97.6100 100.0000 1.00000 0 0
2014-07-26 00:32:00 97.6100 97.6100 97.6100 97.6100 80.0000 1.00000 0 0
2014-07-26 00:34:00 97.6100 97.6100 97.6100 97.6100 305.0000 1.00000 0 0
2014-07-26 00:37:00 97.6100 97.6100 97.6000 97.6000 760.0000 1.00000 0 0
2014-07-26 00:38:00 97.6000 97.6000 97.6000 97.6000 100.0000 1.00000 0 0
2014-07-26 00:43:00 97.6200 97.6200 97.6200 97.6200 100.0000 1.00000 0 0
2014-07-26 00:46:00 97.6200 97.6200 97.6200 97.6200 200.0000 1.00000 0 0
2014-07-26 00:47:00 97.5900 97.5900 97.5900 97.5900 40.0000 1.00000 0 0
2014-07-26 00:48:00 97.6200 97.6200 97.6200 97.6200 200.0000 1.00000 0 0
2014-07-26 00:49:00 97.6000 97.6200 97.6000 97.6200 831.0000 1.00000 0 0
2014-07-26 00:50:00 97.6300 97.6400 97.6300 97.6400 1000.0000 1.00000 0 0
2014-07-26 00:51:00 97.6200 97.6200 97.6200 97.6200 50.0000 1.00000 0 0
2014-07-26 00:52:00 97.6400 97.6400 97.6400 97.6400 1000.0000 1.00000 0 0
2014-07-26 00:53:00 97.6300 97.6400 97.6300 97.6400 1340.0000 1.00000 0 0
2014-07-26 00:55:00 97.6300 97.6300 97.6200 97.6200 2000.0000 1.00000 0 0
2014-07-26 00:56:00 97.6400 97.6500 97.6400 97.6500 3500.0000 1.00000 0 0
2014-07-26 00:58:00 97.6300 97.6300 97.6300 97.6300 500.0000 1.00000 0 0
2014-07-26 00:59:00 97.6300 97.6300 97.6200 97.6200 2044.0000 1.00000 0 0

26424 rows × 8 columns


In [ ]: