Notebook
In [6]:
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data.factset.ownership import Form3AggregatedTrades
from quantopian.pipeline.data.factset.ownership import Form4and5AggregatedTrades
from quantopian.pipeline.filters import QTradableStocksUS 
from quantopian.pipeline.domain import US_EQUITIES
from quantopian.pipeline.factors import PercentChange
from quantopian.research import run_pipeline
import quantopian.pipeline.data.factset.estimates as fe
import pandas as pd

QTU = QTradableStocksUS()

fq1_eps_cons = fe.PeriodicConsensus.slice('EPS', 'qf', 1)
fq1_eps_cons_up = fq1_eps_cons.up.latest
fq1_eps_cons_down = fq1_eps_cons.down.latest   

# Add columns for the fractions to the result.
pipe = Pipeline(
    columns={
        'fq1_eps_cons_up': fq1_eps_cons_up,
        'fq1_eps_cons_down': fq1_eps_cons_down,
    },
    domain=US_EQUITIES,
    screen=QTU,
)

df = run_pipeline(pipe, '2014-04-01', '2017-12-19')
# df

Pipeline Execution Time: 29.28 Seconds
In [7]:
dfnew=pd.DataFrame()
In [8]:
dfnew["null_records"]=df.isnull().sum()
dfnew["notnull_records"]=df.notnull().sum()
dfnew["total_records"]=df.isnull().sum()+df.notnull().sum()
dfnew["null_records/total_records"]=dfnew["null_records"]/dfnew["total_records"]
In [9]:
dfnew.sort_values(by="null_records/total_records",ascending=False)
Out[9]:
null_records notnull_records total_records null_records/total_records
fq1_eps_cons_down 27772 1949897 1977669 0.014043
fq1_eps_cons_up 27772 1949897 1977669 0.014043
In [10]:
df.head()
Out[10]:
fq1_eps_cons_down fq1_eps_cons_up
2014-04-01 00:00:00+00:00 Equity(2 [ARNC]) 3.0 6.0
Equity(24 [AAPL]) 38.0 4.0
Equity(31 [ABAX]) 8.0 0.0
Equity(39 [DDC]) 0.0 2.0
Equity(41 [ARCB]) 12.0 3.0
In [ ]:
 
In [ ]: