Notebook

Getting Fundamentals Example

In [1]:
#Import basic pipeline stuff
from quantopian.pipeline import Pipeline, CustomFactor
from quantopian.research import run_pipeline

from quantopian.pipeline.filters import StaticAssets, Q1500US

import pandas as pd
In [2]:
# First thing is to import the morningstar dataset
# Most fundamentals are here
import quantopian.pipeline.data.morningstar as mstar
In [3]:
# Find the specific data fields you want
# If you want the latest data then simply create factors using the .latest method
filed_date = mstar.financial_statement_filing.file_date.latest
as_of_date = mstar.financial_statement_filing.period_ending_date.latest
form = mstar.financial_statement_filing.form_type.latest

free_cash_flow = mstar.cash_flow_statement.free_cash_flow.latest
sales = mstar.income_statement.total_revenue.latest
In [4]:
# If you need custom ratios or formulas they can typically be created by manipulating
# the latest factors like this
fcf_margin = free_cash_flow / sales
In [8]:
# If you are looking for historical fundamentals you will need to create a simply custom factor
# Long lookbacks can take a long time. Best to use the 'mask' feature to reduce universe size.
class Historical_Data(CustomFactor):
    # Must explicitly enter input and window_length
    # These are the data and lookback length respectively

    def compute(self, today, assets, out, data):
        # returns the earliest data in the dataset
        out[:] = data[0]  

# Create a factor for cash flow 1 year ago. There are typically 252 trading days in a year.
free_cash_flow_yr_ago = Historical_Data(inputs=[mstar.cash_flow_statement.free_cash_flow], window_length=252)
fcf_annual_increase = free_cash_flow/free_cash_flow_yr_ago
In [10]:
# Create a pipline and add any factors as columns
pipe = Pipeline()
pipe.add(filed_date, 'filed_date' )
pipe.add(as_of_date, 'as_of_date' )
pipe.add(form, 'form' )
pipe.add(free_cash_flow, 'free_cash_flow' )
pipe.add(free_cash_flow_yr_ago, 'free_cash_flow_yr_ago' )
pipe.add(fcf_annual_increase, 'fcf_annual_increase' )


# Print out the pipeline results with results for each security (sorted by yield)
# Notice this is all securities for a single day (this is what a piepline returns in the algo environment)
results = run_pipeline(pipe, '2016-3-27', '2016-3-27')
results.sort_values('fcf_annual_increase', ascending=False)
Out[10]:
as_of_date fcf_annual_increase filed_date form free_cash_flow free_cash_flow_yr_ago
2016-03-28 00:00:00+00:00 Equity(45880 [CACQ]) 2015-12-31 inf 2016-02-23 8-K 1300000.0 0.0
Equity(27042 [MNTX]) 2015-12-31 611.913043 2016-03-10 8-K 14074000.0 23000.0
Equity(44831 [KMDA]) 2015-12-31 295.714286 2016-02-02 6-K -6210000.0 -21000.0
Equity(47523 [TRTL]) 2015-12-31 242.503165 2015-11-04 10-Q -76631.0 -316.0
Equity(5331 [NL]) 2015-12-31 187.930233 2016-03-10 8-K 8081000.0 43000.0
Equity(39358 [SEMG]) 2015-12-31 157.391555 2016-02-25 8-K -82001000.0 -521000.0
Equity(32504 [INWK]) 2015-12-31 152.607139 2016-02-18 8-K 47750316.0 312897.0
Equity(46505 [BLBD]) 2015-12-31 120.773743 2016-02-09 10-K -43237000.0 -358000.0
Equity(24515 [SMIT]) 2015-11-30 97.109483 2016-01-14 8-K -238598.0 -2457.0
Equity(880 [BIO_B]) 2015-12-31 87.560440 2016-02-25 8-K 7968000.0 91000.0
Equity(879 [BIO]) 2015-12-31 87.560440 2016-02-25 8-K 7968000.0 91000.0
Equity(48222 [MOMO]) 2015-12-31 76.603774 2016-03-15 6-K 28420000.0 371000.0
Equity(48089 [LMRK]) 2015-12-31 74.048059 2015-11-05 10-Q -35759955.0 -482929.0
Equity(44345 [ZAIS]) 2015-12-31 69.726312 2016-03-10 8-K -31698000.0 -454606.0
Equity(192 [ATAX]) 2015-12-31 66.265131 2015-11-05 10-Q 5189620.0 78316.0
Equity(300 [ALK]) 2015-12-31 64.000000 2016-01-21 8-K 192000000.0 3000000.0
Equity(21557 [SONS]) 2015-12-31 55.072131 2015-10-30 8-K 16797000.0 305000.0
Equity(45006 [TRMR]) 2015-12-31 53.218750 2016-03-03 8-K -5109000.0 -96000.0
Equity(1789 [COT]) 2016-01-02 50.833333 2016-02-18 8-K 61000000.0 1200000.0
Equity(38405 [SUNW]) 2015-12-31 48.471403 2016-03-14 8-K 2884000.0 59499.0
Equity(44156 [AGI]) 2015-09-30 47.049180 2015-11-12 6-K -57400000.0 -1220000.0
Equity(32121 [KALU]) 2015-12-31 42.000000 2015-10-22 8-K 25200000.0 600000.0
Equity(37512 [TRCH]) 2015-09-30 38.578496 2015-11-12 10-Q 1715470.0 44467.0
Equity(21374 [CRAY]) 2015-12-31 35.614670 2015-10-29 8-K 76714000.0 2154000.0
Equity(46099 [TACO]) 2015-09-16 33.045570 2015-10-19 8-K -9562000.0 -289358.0
Equity(26157 [CUTR]) 2015-12-31 31.016129 2016-02-08 8-K 3846000.0 124000.0
Equity(44129 [AFH]) 2015-12-31 30.855670 2016-03-07 8-K 2993000.0 97000.0
Equity(42060 [LMOS]) 2015-12-31 30.038961 2016-03-07 8-K -20817000.0 -693000.0
Equity(2330 [DTE]) 2015-12-31 29.333333 2015-10-23 8-K -176000000.0 -6000000.0
Equity(45847 [CHGG]) 2015-12-31 25.610212 2016-02-22 8-K -20565000.0 -803000.0
... ... ... ... ... ... ...
Equity(49787 [SNDX]) 2015-12-31 NaN 2014-11-21 S-1/A -4326000.0 NaN
Equity(49788 [NVTR]) NaT NaN NaT None NaN NaN
Equity(49789 [WRB_PRC]) NaT NaN NaT None NaN NaN
Equity(49790 [NNDM]) NaT NaN NaT None NaN NaN
Equity(49791 [GSEU]) NaT NaN NaT None NaN NaN
Equity(49792 [GSJY]) NaT NaN NaT None NaN NaN
Equity(49793 [BOFI_L]) NaT NaN NaT None NaN NaN
Equity(49795 [SCE_PRK]) NaT NaN NaT None NaN NaN
Equity(49796 [SHE]) NaT NaN NaT None NaN NaN
Equity(49801 [DWIN]) NaT NaN NaT None NaN NaN
Equity(49802 [GAMR]) NaT NaN NaT None NaN NaN
Equity(49803 [IFLY]) NaT NaN NaT None NaN NaN
Equity(49804 [EBAY_L]) NaT NaN NaT None NaN NaN
Equity(49805 [BBT_PRH]) 2015-12-31 NaN 2016-01-21 8-K 982000000.0 NaN
Equity(49806 [KLRE_U]) NaT NaN NaT None NaN NaN
Equity(49813 [SHO_PRE]) 2015-12-31 NaN 2016-02-22 8-K 22623000.0 NaN
Equity(49816 [STAG_PRC]) 2015-12-31 NaN 2016-02-25 8-K -107539000.0 NaN
Equity(49817 [HCM]) 2015-12-31 NaN 2015-11-13 None 918000.0 NaN
Equity(49818 [SBPH]) 2015-12-31 NaN NaT None -1934000.0 NaN
Equity(49819 [FVC]) NaT NaN NaT None NaN NaN
Equity(49820 [AFSI_PRE]) 2015-12-31 NaN 2016-02-10 8-K 380008000.0 NaN
Equity(49822 [AFI]) 2015-12-31 NaN 2015-12-21 None -18200000.0 NaN
Equity(49823 [AWI_WI]) NaT NaN NaT None NaN NaN
Equity(49824 [CBMX_W]) NaT NaN NaT None NaN NaN
Equity(49825 [SENS]) 2015-09-30 NaN 2015-11-13 10-Q -8189.0 NaN
Equity(49826 [PSET]) NaT NaN NaT None NaN NaN
Equity(49827 [CRVS]) 2015-12-31 NaN NaT None -4802000.0 NaN
Equity(49828 [PY]) NaT NaN NaT None NaN NaN
Equity(49829 [CEZ]) NaT NaN NaT None NaN NaN
Equity(49831 [HBAN_O]) 2015-12-31 NaN 2016-01-21 8-K 608460000.0 NaN

8348 rows × 6 columns

In [11]:
# Note that there are a lot of NaNs. These can come from non-stock securities
# Best to filter those out. An easy way to get the largest 1500 stocks is to use
# the built in Q1500US filter
q1500_filter = Q1500US() 
In [12]:
# Lets add that filter to our pipeline and re-run to see the results
# Notice that there are still some weird data

pipe.set_screen(q1500_filter)
results = run_pipeline(pipe, '2016-3-27', '2016-3-27')
results.sort_values('fcf_annual_increase', ascending=False)
Out[12]:
as_of_date fcf_annual_increase filed_date form free_cash_flow free_cash_flow_yr_ago
2016-03-28 00:00:00+00:00 Equity(39358 [SEMG]) 2015-12-31 157.391555 2016-02-25 8-K -8.200100e+07 -5.210000e+05
Equity(879 [BIO]) 2015-12-31 87.560440 2016-02-25 8-K 7.968000e+06 9.100000e+04
Equity(300 [ALK]) 2015-12-31 64.000000 2016-01-21 8-K 1.920000e+08 3.000000e+06
Equity(32121 [KALU]) 2015-12-31 42.000000 2015-10-22 8-K 2.520000e+07 6.000000e+05
Equity(2330 [DTE]) 2015-12-31 29.333333 2015-10-23 8-K -1.760000e+08 -6.000000e+06
Equity(40852 [KMI]) 2015-12-31 24.972222 2016-01-20 8-K 8.990000e+08 3.600000e+07
Equity(5343 [THC]) 2015-12-31 23.200000 2016-02-22 8-K 4.640000e+08 2.000000e+07
Equity(18696 [EQY]) 2015-12-31 22.786029 2016-02-24 8-K -7.241400e+07 -3.178000e+06
Equity(15622 [ANF]) 2016-01-30 20.778409 2016-03-03 8-K 5.119800e+07 2.464000e+06
Equity(5847 [PDLI]) 2015-12-31 20.359965 2016-02-22 8-K 7.007900e+07 3.442000e+06
Equity(3266 [GATX]) 2015-12-31 18.587045 2016-01-21 8-K -4.591000e+08 -2.470000e+07
Equity(2673 [F]) 2015-12-31 18.142857 2015-10-27 8-K 2.540000e+08 1.400000e+07
Equity(45430 [FPRX]) 2015-12-31 17.992212 2016-03-10 8-K 3.326760e+08 1.849000e+07
Equity(18010 [DEPO]) 2015-12-31 16.812865 2016-02-22 8-K 5.750000e+07 3.420000e+06
Equity(16169 [CALM]) 2015-11-28 16.783976 2015-12-23 8-K 1.275750e+08 7.601000e+06
Equity(24829 [APOL]) 2015-11-30 16.350834 2016-01-11 10-Q -3.332300e+07 -2.038000e+06
Equity(40606 [SWFT]) 2015-12-31 16.083672 2016-01-25 8-K 1.305190e+08 8.115000e+06
Equity(41766 [HZNP]) 2015-12-31 15.719582 2016-02-29 8-K 1.322960e+08 8.416000e+06
Equity(26766 [HALO]) 2015-12-31 14.324255 2016-02-29 8-K -1.683100e+07 -1.175000e+06
Equity(693 [AZO]) 2016-02-29 14.185936 2016-03-22 8-K 1.071180e+08 7.551000e+06
Equity(11752 [CLI]) 2015-12-31 13.588442 2016-02-24 8-K -8.511800e+07 -6.264000e+06
Equity(337 [AMAT]) 2016-01-31 12.636364 2016-02-25 8-K 1.390000e+08 1.100000e+07
Equity(26672 [ARCC]) 2015-12-31 11.348042 2016-02-24 8-K -3.497580e+08 -3.082100e+07
Equity(6000 [PIR]) 2015-11-28 11.245786 2016-01-06 8-K 6.071600e+07 5.399000e+06
Equity(11710 [GEO]) 2015-12-31 10.146619 2016-02-23 8-K 1.425600e+07 1.405000e+06
Equity(6064 [PTC]) 2016-01-02 10.038522 2016-02-10 8-K 5.706900e+07 5.685000e+06
Equity(18821 [VTR]) 2015-12-31 9.807541 2015-10-26 8-K 2.442470e+08 2.490400e+07
Equity(3647 [HP]) 2015-12-31 9.375502 2016-02-05 8-K 1.937260e+08 2.066300e+07
Equity(13017 [DISH]) 2015-12-31 8.904430 2015-11-09 10-Q -9.085421e+09 -1.020326e+09
Equity(20773 [PKG]) 2015-12-31 8.828765 2016-01-26 8-K 1.240000e+08 1.404500e+07
... ... ... ... ... ... ...
Equity(41484 [YNDX]) NaT NaN NaT None NaN NaN
Equity(41663 [RTRX]) 2015-12-31 NaN 2016-02-25 8-K -4.273000e+06 NaN
Equity(42611 [NSM]) 2015-12-31 NaN 2016-02-25 8-K 3.659710e+08 NaN
Equity(44780 [CSTM]) NaT NaN NaT None NaN NaN
Equity(44986 [LXFT]) 2015-12-31 NaN 2016-02-12 6-K 1.759600e+07 NaN
Equity(45670 [OMF]) 2015-12-31 NaN 2016-02-25 8-K 3.360000e+08 NaN
Equity(45770 [ESNT]) 2015-12-31 NaN 2016-02-12 8-K 6.322500e+07 NaN
Equity(46215 [SC]) 2015-12-31 NaN 2016-01-27 8-K -6.978090e+08 NaN
Equity(46782 [NAVI]) 2015-12-31 NaN 2016-01-26 8-K 4.510000e+08 NaN
Equity(47415 [SYF]) 2015-12-31 NaN 2016-01-22 8-K 1.889000e+09 NaN
Equity(47777 [CFG]) 2015-12-31 NaN 2016-01-22 8-K 2.950000e+08 NaN
Equity(47888 [FCAU]) NaT NaN NaT None NaN NaN
Equity(47898 [GWB]) 2015-12-31 NaN 2016-02-11 8-K 3.824900e+07 NaN
Equity(48547 [ONCE]) 2015-12-31 NaN 2015-11-06 8-K -1.918587e+07 NaN
Equity(48575 [XHR]) 2015-12-31 NaN 2016-02-23 8-K 3.836100e+07 NaN
Equity(48823 [SEDG]) 2015-12-31 NaN 2016-02-08 8-K 1.076000e+07 NaN
Equity(48863 [GDDY]) 2015-12-31 NaN 2016-02-17 8-K 3.880000e+07 NaN
Equity(48892 [IGT]) 2015-09-30 NaN 2015-11-12 Quarterly 1.322580e+08 NaN
Equity(48934 [ETSY]) 2015-12-31 NaN 2016-02-23 8-K 6.222000e+06 NaN
Equity(48962 [CSAL]) 2015-12-31 NaN 2016-03-03 8-K NaN NaN
Equity(49003 [TLN]) 2015-12-31 NaN 2016-02-25 8-K -1.970000e+08 NaN
Equity(49051 [APLE]) 2015-12-31 NaN 2016-02-25 8-K -1.428300e+07 NaN
Equity(49060 [SHOP]) 2015-12-31 NaN 2016-02-17 6-K -2.315000e+06 NaN
Equity(49141 [CPGX]) 2015-12-31 NaN 2015-11-03 10-Q -2.687000e+08 NaN
Equity(49176 [TRU]) 2015-12-31 NaN 2016-02-16 8-K 6.700000e+07 NaN
Equity(49207 [BLD]) 2015-12-31 NaN 2015-11-03 10-Q 9.807000e+06 NaN
Equity(49242 [PYPL]) 2015-12-31 NaN 2016-01-27 8-K 5.640000e+08 NaN
Equity(49496 [FDC]) 2015-12-31 NaN 2016-02-10 8-K 1.080000e+08 NaN
Equity(49506 [HPE]) 2016-01-31 NaN 2016-03-10 8-K -9.070000e+08 NaN
Equity(49630 [CSRA]) 2016-01-01 NaN 2016-02-16 8-K -4.869200e+07 NaN

1498 rows × 6 columns

In [13]:
# Lets see what the data looks like over time now.
# Remember that the results above were for a single day.
# Best to do this with a single stock so lets create a filter for AAPL

aapl_filter = StaticAssets(symbols(['AAPL']))
pipe.set_screen(aapl_filter, overwrite=True)
results = run_pipeline(pipe, '2015-10-27', '2016-3-27')
results
Out[13]:
as_of_date fcf_annual_increase filed_date form free_cash_flow free_cash_flow_yr_ago
2015-10-27 00:00:00+00:00 Equity(24 [AAPL]) 2015-06-27 1.372526 2015-07-22 8-K 1.289900e+10 9.398000e+09
2015-10-28 00:00:00+00:00 Equity(24 [AAPL]) 2015-06-27 1.372526 2015-07-22 8-K 1.289900e+10 9.398000e+09
2015-10-29 00:00:00+00:00 Equity(24 [AAPL]) 2015-06-27 1.372526 2015-07-22 8-K 1.289900e+10 9.398000e+09
2015-10-30 00:00:00+00:00 Equity(24 [AAPL]) 2015-06-27 1.372526 2015-07-22 8-K 1.289900e+10 9.398000e+09
2015-11-02 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-03 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-04 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-05 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-06 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-09 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-10 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-11 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-12 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-13 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-16 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-17 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-18 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-19 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-20 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-23 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-24 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-25 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-27 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-11-30 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-12-01 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-12-02 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-12-03 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-12-04 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-12-07 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
2015-12-08 00:00:00+00:00 Equity(24 [AAPL]) 2015-09-26 1.044584 2015-10-27 8-K 9.817000e+09 9.398000e+09
... ... ... ... ... ... ... ...
2016-02-12 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-16 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-17 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-18 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-19 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-22 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-23 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-24 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-25 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-26 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-02-29 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-01 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-02 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-03 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-04 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-07 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-08 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-09 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-10 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-11 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-14 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-15 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-16 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-17 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-18 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-21 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-22 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-23 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-24 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10
2016-03-28 00:00:00+00:00 Equity(24 [AAPL]) 2015-12-26 0.770168 2016-01-27 8-K 2.345700e+10 3.045700e+10

104 rows × 6 columns

Notice how repetitive the data is. Fundamentals only change quarterly. Moreover, they change at unpredictable intervals (ie whenever the company releases their results or an update). This makes Year over Year or Quarter comparisons a bit complicated especially near release dates.

In [ ]: