#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
# First thing is to import the morningstar dataset
# Most fundamentals are here
import quantopian.pipeline.data.morningstar as mstar
# 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
# 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
# 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
# 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)
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
# 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()
# 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)
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
# 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
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.