Notebook

Import packages, data and modules

In [10]:
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data import morningstar
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.factors import SimpleMovingAverage
from quantopian.pipeline.filters.morningstar import IsPrimaryShare
from quantopian.pipeline.data.zacks import broker_ratings
from quantopian.research import run_pipeline

from quantopian.pipeline.filters import Q1500US

from zipline.api import get_datetime
# from zipline.pipeline.factors.Factor import isnan

import numpy as np
import pandas as pd
In [11]:
def universe_filters():
    """
    Create a Pipeline producing Filters implementing common acceptance criteria.
    
    Returns
    -------
    zipline.Filter
        Filter to control tradeablility
    """
    # Primary share equities.
    primary_share = IsPrimaryShare()
    
    # Equities listed as common stock. 'ST00000001' indicates common stock.
    common_stock = morningstar.share_class_reference.security_type.latest.eq('ST00000001') 
    
    # Non-depositary receipts
    not_depositary = ~morningstar.share_class_reference.is_depositary_receipt.latest
    
    # Equities not trading over-the-counter.
    not_otc = ~morningstar.share_class_reference.exchange_id.latest.startswith('OTC')
    
    # Not when-issued equities.
    not_wi = ~morningstar.share_class_reference.symbol.latest.endswith('.WI')
    
    # Equities without LP in their name
    not_lp_name = ~morningstar.company_reference.standard_name.latest.matches('.* L[. ]?P.?$')
    
    # Equities with a null value in the limited_partnership
    not_lp_balance_sheet = morningstar.balance_sheet.limited_partnership.latest.isnull()
    
    # Equities whose most recent Morningstar market cap is not null have fundamental data and therefore are not ETFs.
    have_market_cap = morningstar.valuation.market_cap.latest.notnull()

    universe_filter = (
        primary_share
        & common_stock
        & not_depositary
        & not_otc
        & not_wi
        & not_lp_name
        & not_lp_balance_sheet
        & have_market_cap
    )
    
    return universe_filter
In [36]:
def make_pipeline():    
    #Make our universe filter 
    q1500us = Q1500US()
    
    #Get price data
    latest_close = USEquityPricing.close.latest
    mean_close_10 = SimpleMovingAverage(inputs=[USEquityPricing.close], window_length=10, mask=q1500us)
    percent_difference = latest_close / mean_close_10 - 1
    
    #Get key financial ratios
    price_to_book = morningstar.valuation_ratios.pb_ratio.latest #TO-DO: adjust for goodwill_and_other_intangible_assets
    price_to_earnings = morningstar.valuation_ratios.pe_ratio.latest  #TO-DO: exclude extraordinary earnings items
    debt_to_equity = morningstar.operation_ratios.total_debt_equity_ratio.latest
    financials_ratio = (1/price_to_book + 10/price_to_earnings - debt_to_equity)/3
    
    #Get last filing date
    last_filing_date = morningstar.financial_statement_filing.file_date.latest #TO-DO: check what is the most relevant statement date
    
    #Get analyst estimations
    rating_strong_buys = broker_ratings.rating_cnt_strong_buys.latest
    rating_buys = broker_ratings.rating_cnt_mod_buys.latest
    rating_holds = broker_ratings.rating_cnt_holds.latest
    rating_sells = broker_ratings.rating_cnt_mod_sells.latest
    rating_strong_sells = broker_ratings.rating_cnt_strong_sells.latest
        
    #Get Market capitalisation component
    market_cap = morningstar.valuation.market_cap.latest
    market_cap_coefficient = 46066000/market_cap

    return Pipeline(
        columns={
            'P/B': price_to_book,
            'P/E' : price_to_earnings,
            'D/E' : debt_to_equity,
            'Financials_ratio' : financials_ratio,
            'Last_filing':last_filing_date,
            'Strong_buys':rating_strong_buys, 
            'Buys':rating_buys, 
            'Holds':rating_holds, 
            'Sells':rating_sells, 
            'Strong_sells':rating_strong_sells,
            'Market_cap_coefficient': market_cap_coefficient,

        },
        # screen=universe_filters() & screening
        screen=q1500us,
    )
In [37]:
my_pipe = make_pipeline()
In [38]:
result = run_pipeline(my_pipe, '2013-05-05', '2013-05-05')
print 'Number of securities that passed the filter: %d' % len(result)
Number of securities that passed the filter: 1500
In [39]:
result
Out[39]:
Buys D/E Financials_ratio Holds Last_filing Market_cap_coefficient P/B P/E Sells Strong_buys Strong_sells
2013-05-06 00:00:00+00:00 Equity(2 [ARNC]) 2.0 0.667739 0.357211 7.0 2014-04-24 0.005068 0.6801 37.1747 0.0 3.0 4.0
Equity(24 [AAPL]) 5.0 0.069746 0.400752 9.0 2014-04-24 0.000111 3.0675 10.5708 0.0 25.0 0.0
Equity(53 [ABMD]) 0.0 0.000202 0.130033 3.0 2013-05-02 0.064612 5.2002 50.5051 1.0 6.0 1.0
Equity(62 [ABT]) 2.0 0.587290 0.284401 10.0 2014-05-07 0.000800 2.5478 9.5420 0.0 7.0 0.0
Equity(67 [ADSK]) 1.0 0.054515 0.141928 8.0 2013-02-25 0.004990 4.5188 38.6100 1.0 6.0 0.0
Equity(69 [ACAT]) 1.0 0.000000 0.311901 3.0 2014-02-06 0.077548 3.4048 15.5763 0.0 3.0 0.0
Equity(76 [TAP]) 0.0 0.585937 0.221253 3.0 2013-02-14 0.004894 1.2111 23.5849 1.0 1.0 1.0
Equity(88 [ACI]) NaN 1.836758 0.508361 NaN 2014-05-12 0.044434 0.3726 14.7493 NaN NaN NaN
Equity(114 [ADBE]) 1.0 0.225031 0.129589 11.0 2014-03-28 0.002036 3.3245 31.9489 0.0 8.0 1.0
Equity(122 [ADI]) 0.0 0.399560 0.118146 12.0 2013-02-19 0.003238 3.2895 22.2222 0.0 10.0 0.0
Equity(128 [ADM]) 2.0 0.467064 0.311417 4.0 2014-05-02 0.002060 1.1802 18.0505 2.0 1.0 1.0
Equity(161 [AEP]) 1.0 1.550409 -0.146502 10.0 2013-04-26 0.001843 1.6210 20.2429 0.0 3.0 0.0
Equity(166 [AES]) 0.0 2.899129 -0.791107 0.0 2012-11-07 0.004452 2.2331 128.2051 0.0 6.0 0.0
Equity(168 [AET]) 0.0 0.218178 0.398145 6.0 2013-01-31 0.002461 1.7525 11.8765 0.0 10.0 0.0
Equity(185 [AFL]) 2.0 0.275700 0.499800 10.0 2014-05-02 0.001815 1.6337 8.5985 0.0 7.0 0.0
Equity(197 [AGCO]) 0.0 0.408937 0.419417 5.0 2014-05-09 0.008890 1.4767 10.1010 0.0 5.0 1.0
Equity(205 [AGN]) 2.0 0.405632 0.027323 6.0 2014-05-07 0.001369 6.3052 30.3951 0.0 12.0 0.0
Equity(209 [AM]) 0.0 0.554759 0.465949 1.0 2014-01-08 0.078139 0.8646 12.5628 0.0 0.0 0.0
Equity(216 [HES]) 1.0 0.327458 0.554425 8.0 2014-05-08 0.001859 1.1053 9.2081 0.0 7.0 0.0
Equity(239 [AIG]) 0.0 1.180222 0.476461 9.0 2013-05-02 0.000753 0.6144 10.1833 0.0 9.0 0.0
Equity(266 [AJG]) 2.0 0.465549 0.078283 6.0 2014-04-24 0.008561 3.2321 25.5754 0.0 4.0 0.0
Equity(270 [AKRX]) 1.0 0.606238 -0.066512 3.0 2013-02-26 0.031858 6.7249 38.7597 0.0 4.0 0.0
Equity(300 [ALK]) 1.0 0.647059 0.132748 2.0 2014-05-09 0.010629 2.9647 14.1243 1.0 6.0 1.0
Equity(301 [ALKS]) 1.0 0.401221 -0.036207 1.0 2013-01-31 0.011252 4.2992 166.6667 1.0 3.0 0.0
Equity(328 [ALTR]) 1.0 0.144936 0.244554 13.0 2014-04-25 0.004495 2.9709 18.4502 0.0 6.0 0.0
Equity(337 [AMAT]) 1.0 0.272511 0.061298 7.0 2014-02-20 0.002848 2.2655 666.6667 1.0 3.0 1.0
Equity(338 [BEAM]) 2.0 0.473430 0.130956 4.0 2013-05-02 0.004425 2.2257 23.9808 1.0 4.0 0.0
Equity(351 [AMD]) 1.0 4.925301 -1.269100 17.0 2014-05-01 0.022863 4.8544 10.9649 2.0 3.0 1.0
Equity(353 [AME]) 2.0 0.504820 0.078560 2.0 2014-05-06 0.004646 3.7807 21.0084 0.0 5.0 0.0
Equity(357 [TWX]) 2.0 0.640024 0.147730 8.0 2013-02-06 0.000827 1.8580 18.3486 0.0 14.0 0.0
... ... ... ... ... ... ... ... ... ... ... ...
Equity(42764 [RPAI]) 1.0 0.160050 NaN 1.0 2013-02-19 0.013040 1.5145 NaN 0.0 1.0 0.0
Equity(42783 [OAK]) 1.0 2.007751 -0.341451 3.0 2013-02-14 0.005878 23.5849 10.6270 0.0 2.0 0.0
Equity(42784 [FET]) 0.0 0.310854 0.233681 3.0 2014-04-29 0.017994 2.1744 18.1159 0.0 8.0 0.0
Equity(42786 [MRC]) 3.0 0.871799 -0.016865 1.0 2014-05-02 0.015126 2.4740 23.9808 1.0 6.0 0.0
Equity(42788 [PSX]) 0.0 NaN NaN 5.0 2014-05-01 0.001221 1.7683 7.9177 0.0 7.0 0.0
Equity(42811 [TUMI]) 0.0 0.000000 0.164333 1.0 2013-08-08 0.029473 4.8544 34.8432 0.0 2.0 0.0
Equity(42815 [SPLK]) 2.0 0.000000 NaN 3.0 2013-02-28 0.011214 17.3010 NaN 0.0 9.0 0.0
Equity(42821 [BLOX]) 0.0 NaN NaN 1.0 2014-03-07 0.043440 6.6622 NaN 0.0 6.0 0.0
Equity(42885 [EVER]) 1.0 1.998853 -0.268444 1.0 2014-04-30 0.023554 1.4440 19.9601 0.0 4.0 0.0
Equity(42917 [WMC]) 1.0 9.164099 NaN 2.0 2013-04-05 0.084615 1.0999 NaN 0.0 1.0 0.0
Equity(42950 [FB]) 2.0 0.190968 0.000711 11.0 2014-04-25 0.000686 5.6786 588.2353 0.0 17.0 0.0
Equity(43032 [HTA]) 0.0 0.827065 NaN 3.0 2013-02-21 0.016457 2.1066 NaN 0.0 3.0 0.0
Equity(43085 [BKW]) 0.0 2.547660 -0.714020 3.0 2013-02-15 0.007280 5.3022 46.0829 1.0 1.0 0.0
Equity(43127 [NOW]) 0.0 NaN NaN 3.0 2014-05-07 0.008374 20.8333 NaN 0.0 6.0 0.0
Equity(43201 [FIVE]) 1.0 0.487674 37.386513 5.0 2013-03-27 0.022522 28.9017 0.0888 0.0 2.0 0.0
Equity(43202 [PANW]) 1.0 NaN NaN 10.0 2013-03-05 0.011773 16.0772 NaN 0.0 9.0 0.0
Equity(43298 [LVNT_A]) 0.0 NaN NaN 0.0 NaT 0.017044 NaN NaN 0.0 1.0 0.0
Equity(43399 [ADT]) 0.0 0.480053 0.134083 2.0 2014-01-30 0.004825 2.0691 25.0627 0.0 3.0 1.0
Equity(43405 [KRFT]) NaN 2.664083 -0.671928 NaN 2014-05-02 0.001505 8.1766 19.0114 NaN NaN NaN
Equity(43413 [TRLA]) 2.0 0.049626 NaN 0.0 2014-05-02 0.049408 4.6533 NaN 0.0 3.0 0.0
Equity(43500 [RLGY]) 0.0 NaN NaN 1.0 2013-05-01 0.006585 4.8544 NaN 1.0 4.0 0.0
Equity(43510 [WDAY]) 0.0 0.042176 NaN 10.0 2013-03-07 0.004487 17.3310 NaN 0.0 6.0 0.0
Equity(43513 [LNCO]) NaN 1.453542 NaN NaN 2012-10-12 0.030990 1.2618 NaN NaN NaN NaN
Equity(43572 [WWAV]) 1.0 NaN NaN 3.0 2012-11-30 0.015747 3.5051 25.9740 0.0 5.0 0.0
Equity(43694 [ABBV]) 1.0 NaN NaN 6.0 2012-08-07 0.000632 24.6914 13.6054 0.0 4.0 0.0
Equity(43713 [PBF]) 2.0 0.872220 0.911042 1.0 2014-05-07 0.015663 6.9300 2.8893 0.0 3.0 0.0
Equity(43718 [SBY]) 1.0 NaN NaN 2.0 NaT 0.061413 1.0918 NaN 0.0 1.0 0.0
Equity(43919 [LMCA]) 0.0 NaN NaN 1.0 NaT 0.003328 0.9696 1.5024 0.0 3.0 0.0
Equity(43981 [NCLH]) 0.0 1.478788 -0.327565 2.0 2013-02-11 0.007282 2.6660 82.6446 0.0 4.0 0.0
Equity(44060 [ZTS]) 0.0 NaN NaN 4.0 2014-05-13 0.002790 23.3100 35.4610 0.0 5.0 0.0

1500 rows × 11 columns

In [40]:
# The results dataframe contains all the raw data (and some simple calculated data) we need for our calculations
# We can clean up specific columns or the whole dataframe to get rid of NaNs or other odd data
# Here all the NaNs are replaced by zeros but this could be done more differently for each column
# The inplace parameter is set to True so we don't get another whole copy of the dataframe

result.fillna(0.0, inplace=True)

# Let's see what we have now
result
Out[40]:
Buys D/E Financials_ratio Holds Last_filing Market_cap_coefficient P/B P/E Sells Strong_buys Strong_sells
2013-05-06 00:00:00+00:00 Equity(2 [ARNC]) 2.0 0.667739 0.357211 7.0 2014-04-24 0.005068 0.6801 37.1747 0.0 3.0 4.0
Equity(24 [AAPL]) 5.0 0.069746 0.400752 9.0 2014-04-24 0.000111 3.0675 10.5708 0.0 25.0 0.0
Equity(53 [ABMD]) 0.0 0.000202 0.130033 3.0 2013-05-02 0.064612 5.2002 50.5051 1.0 6.0 1.0
Equity(62 [ABT]) 2.0 0.587290 0.284401 10.0 2014-05-07 0.000800 2.5478 9.5420 0.0 7.0 0.0
Equity(67 [ADSK]) 1.0 0.054515 0.141928 8.0 2013-02-25 0.004990 4.5188 38.6100 1.0 6.0 0.0
Equity(69 [ACAT]) 1.0 0.000000 0.311901 3.0 2014-02-06 0.077548 3.4048 15.5763 0.0 3.0 0.0
Equity(76 [TAP]) 0.0 0.585937 0.221253 3.0 2013-02-14 0.004894 1.2111 23.5849 1.0 1.0 1.0
Equity(88 [ACI]) 0.0 1.836758 0.508361 0.0 2014-05-12 0.044434 0.3726 14.7493 0.0 0.0 0.0
Equity(114 [ADBE]) 1.0 0.225031 0.129589 11.0 2014-03-28 0.002036 3.3245 31.9489 0.0 8.0 1.0
Equity(122 [ADI]) 0.0 0.399560 0.118146 12.0 2013-02-19 0.003238 3.2895 22.2222 0.0 10.0 0.0
Equity(128 [ADM]) 2.0 0.467064 0.311417 4.0 2014-05-02 0.002060 1.1802 18.0505 2.0 1.0 1.0
Equity(161 [AEP]) 1.0 1.550409 -0.146502 10.0 2013-04-26 0.001843 1.6210 20.2429 0.0 3.0 0.0
Equity(166 [AES]) 0.0 2.899129 -0.791107 0.0 2012-11-07 0.004452 2.2331 128.2051 0.0 6.0 0.0
Equity(168 [AET]) 0.0 0.218178 0.398145 6.0 2013-01-31 0.002461 1.7525 11.8765 0.0 10.0 0.0
Equity(185 [AFL]) 2.0 0.275700 0.499800 10.0 2014-05-02 0.001815 1.6337 8.5985 0.0 7.0 0.0
Equity(197 [AGCO]) 0.0 0.408937 0.419417 5.0 2014-05-09 0.008890 1.4767 10.1010 0.0 5.0 1.0
Equity(205 [AGN]) 2.0 0.405632 0.027323 6.0 2014-05-07 0.001369 6.3052 30.3951 0.0 12.0 0.0
Equity(209 [AM]) 0.0 0.554759 0.465949 1.0 2014-01-08 0.078139 0.8646 12.5628 0.0 0.0 0.0
Equity(216 [HES]) 1.0 0.327458 0.554425 8.0 2014-05-08 0.001859 1.1053 9.2081 0.0 7.0 0.0
Equity(239 [AIG]) 0.0 1.180222 0.476461 9.0 2013-05-02 0.000753 0.6144 10.1833 0.0 9.0 0.0
Equity(266 [AJG]) 2.0 0.465549 0.078283 6.0 2014-04-24 0.008561 3.2321 25.5754 0.0 4.0 0.0
Equity(270 [AKRX]) 1.0 0.606238 -0.066512 3.0 2013-02-26 0.031858 6.7249 38.7597 0.0 4.0 0.0
Equity(300 [ALK]) 1.0 0.647059 0.132748 2.0 2014-05-09 0.010629 2.9647 14.1243 1.0 6.0 1.0
Equity(301 [ALKS]) 1.0 0.401221 -0.036207 1.0 2013-01-31 0.011252 4.2992 166.6667 1.0 3.0 0.0
Equity(328 [ALTR]) 1.0 0.144936 0.244554 13.0 2014-04-25 0.004495 2.9709 18.4502 0.0 6.0 0.0
Equity(337 [AMAT]) 1.0 0.272511 0.061298 7.0 2014-02-20 0.002848 2.2655 666.6667 1.0 3.0 1.0
Equity(338 [BEAM]) 2.0 0.473430 0.130956 4.0 2013-05-02 0.004425 2.2257 23.9808 1.0 4.0 0.0
Equity(351 [AMD]) 1.0 4.925301 -1.269100 17.0 2014-05-01 0.022863 4.8544 10.9649 2.0 3.0 1.0
Equity(353 [AME]) 2.0 0.504820 0.078560 2.0 2014-05-06 0.004646 3.7807 21.0084 0.0 5.0 0.0
Equity(357 [TWX]) 2.0 0.640024 0.147730 8.0 2013-02-06 0.000827 1.8580 18.3486 0.0 14.0 0.0
... ... ... ... ... ... ... ... ... ... ... ...
Equity(42764 [RPAI]) 1.0 0.160050 0.000000 1.0 2013-02-19 0.013040 1.5145 0.0000 0.0 1.0 0.0
Equity(42783 [OAK]) 1.0 2.007751 -0.341451 3.0 2013-02-14 0.005878 23.5849 10.6270 0.0 2.0 0.0
Equity(42784 [FET]) 0.0 0.310854 0.233681 3.0 2014-04-29 0.017994 2.1744 18.1159 0.0 8.0 0.0
Equity(42786 [MRC]) 3.0 0.871799 -0.016865 1.0 2014-05-02 0.015126 2.4740 23.9808 1.0 6.0 0.0
Equity(42788 [PSX]) 0.0 0.000000 0.000000 5.0 2014-05-01 0.001221 1.7683 7.9177 0.0 7.0 0.0
Equity(42811 [TUMI]) 0.0 0.000000 0.164333 1.0 2013-08-08 0.029473 4.8544 34.8432 0.0 2.0 0.0
Equity(42815 [SPLK]) 2.0 0.000000 0.000000 3.0 2013-02-28 0.011214 17.3010 0.0000 0.0 9.0 0.0
Equity(42821 [BLOX]) 0.0 0.000000 0.000000 1.0 2014-03-07 0.043440 6.6622 0.0000 0.0 6.0 0.0
Equity(42885 [EVER]) 1.0 1.998853 -0.268444 1.0 2014-04-30 0.023554 1.4440 19.9601 0.0 4.0 0.0
Equity(42917 [WMC]) 1.0 9.164099 0.000000 2.0 2013-04-05 0.084615 1.0999 0.0000 0.0 1.0 0.0
Equity(42950 [FB]) 2.0 0.190968 0.000711 11.0 2014-04-25 0.000686 5.6786 588.2353 0.0 17.0 0.0
Equity(43032 [HTA]) 0.0 0.827065 0.000000 3.0 2013-02-21 0.016457 2.1066 0.0000 0.0 3.0 0.0
Equity(43085 [BKW]) 0.0 2.547660 -0.714020 3.0 2013-02-15 0.007280 5.3022 46.0829 1.0 1.0 0.0
Equity(43127 [NOW]) 0.0 0.000000 0.000000 3.0 2014-05-07 0.008374 20.8333 0.0000 0.0 6.0 0.0
Equity(43201 [FIVE]) 1.0 0.487674 37.386513 5.0 2013-03-27 0.022522 28.9017 0.0888 0.0 2.0 0.0
Equity(43202 [PANW]) 1.0 0.000000 0.000000 10.0 2013-03-05 0.011773 16.0772 0.0000 0.0 9.0 0.0
Equity(43298 [LVNT_A]) 0.0 0.000000 0.000000 0.0 1970-01-01 0.017044 0.0000 0.0000 0.0 1.0 0.0
Equity(43399 [ADT]) 0.0 0.480053 0.134083 2.0 2014-01-30 0.004825 2.0691 25.0627 0.0 3.0 1.0
Equity(43405 [KRFT]) 0.0 2.664083 -0.671928 0.0 2014-05-02 0.001505 8.1766 19.0114 0.0 0.0 0.0
Equity(43413 [TRLA]) 2.0 0.049626 0.000000 0.0 2014-05-02 0.049408 4.6533 0.0000 0.0 3.0 0.0
Equity(43500 [RLGY]) 0.0 0.000000 0.000000 1.0 2013-05-01 0.006585 4.8544 0.0000 1.0 4.0 0.0
Equity(43510 [WDAY]) 0.0 0.042176 0.000000 10.0 2013-03-07 0.004487 17.3310 0.0000 0.0 6.0 0.0
Equity(43513 [LNCO]) 0.0 1.453542 0.000000 0.0 2012-10-12 0.030990 1.2618 0.0000 0.0 0.0 0.0
Equity(43572 [WWAV]) 1.0 0.000000 0.000000 3.0 2012-11-30 0.015747 3.5051 25.9740 0.0 5.0 0.0
Equity(43694 [ABBV]) 1.0 0.000000 0.000000 6.0 2012-08-07 0.000632 24.6914 13.6054 0.0 4.0 0.0
Equity(43713 [PBF]) 2.0 0.872220 0.911042 1.0 2014-05-07 0.015663 6.9300 2.8893 0.0 3.0 0.0
Equity(43718 [SBY]) 1.0 0.000000 0.000000 2.0 1970-01-01 0.061413 1.0918 0.0000 0.0 1.0 0.0
Equity(43919 [LMCA]) 0.0 0.000000 0.000000 1.0 1970-01-01 0.003328 0.9696 1.5024 0.0 3.0 0.0
Equity(43981 [NCLH]) 0.0 1.478788 -0.327565 2.0 2013-02-11 0.007282 2.6660 82.6446 0.0 4.0 0.0
Equity(44060 [ZTS]) 0.0 0.000000 0.000000 4.0 2014-05-13 0.002790 23.3100 35.4610 0.0 5.0 0.0

1500 rows × 11 columns

In [45]:
# The data doesn't have any NaNs now (assuming that's what we want)
# Let's add a rating_coefficient column
# This is a very straight forward way but could also be done by creating a dict of weights and multiply the entire dataframe

result['Rating_coefficient'] = result['Strong_buys'] * .025 \
                             + result['Buys'] * .015  \
                             + result['Holds'] * .005  \
                             + result['Sells'] * -.005 \
                             + result['Strong_sells'] * -.015
                    
# While we're at it lets calculate the potential and put that value into another column
    
result['Potential'] = result['Financials_ratio'] + result['Rating_coefficient'] - result['Market_cap_coefficient']

result
Out[45]:
Buys D/E Financials_ratio Holds Last_filing Market_cap_coefficient P/B P/E Sells Strong_buys Strong_sells Rating_coefficient Potential
2013-05-06 00:00:00+00:00 Equity(2 [ARNC]) 2.0 0.667739 0.357211 7.0 2014-04-24 0.005068 0.6801 37.1747 0.0 3.0 4.0 0.080 0.432143
Equity(24 [AAPL]) 5.0 0.069746 0.400752 9.0 2014-04-24 0.000111 3.0675 10.5708 0.0 25.0 0.0 0.745 1.145641
Equity(53 [ABMD]) 0.0 0.000202 0.130033 3.0 2013-05-02 0.064612 5.2002 50.5051 1.0 6.0 1.0 0.145 0.210421
Equity(62 [ABT]) 2.0 0.587290 0.284401 10.0 2014-05-07 0.000800 2.5478 9.5420 0.0 7.0 0.0 0.255 0.538601
Equity(67 [ADSK]) 1.0 0.054515 0.141928 8.0 2013-02-25 0.004990 4.5188 38.6100 1.0 6.0 0.0 0.200 0.336938
Equity(69 [ACAT]) 1.0 0.000000 0.311901 3.0 2014-02-06 0.077548 3.4048 15.5763 0.0 3.0 0.0 0.105 0.339354
Equity(76 [TAP]) 0.0 0.585937 0.221253 3.0 2013-02-14 0.004894 1.2111 23.5849 1.0 1.0 1.0 0.020 0.236358
Equity(88 [ACI]) 0.0 1.836758 0.508361 0.0 2014-05-12 0.044434 0.3726 14.7493 0.0 0.0 0.0 0.000 0.463927
Equity(114 [ADBE]) 1.0 0.225031 0.129589 11.0 2014-03-28 0.002036 3.3245 31.9489 0.0 8.0 1.0 0.255 0.382553
Equity(122 [ADI]) 0.0 0.399560 0.118146 12.0 2013-02-19 0.003238 3.2895 22.2222 0.0 10.0 0.0 0.310 0.424908
Equity(128 [ADM]) 2.0 0.467064 0.311417 4.0 2014-05-02 0.002060 1.1802 18.0505 2.0 1.0 1.0 0.050 0.359358
Equity(161 [AEP]) 1.0 1.550409 -0.146502 10.0 2013-04-26 0.001843 1.6210 20.2429 0.0 3.0 0.0 0.140 -0.008345
Equity(166 [AES]) 0.0 2.899129 -0.791107 0.0 2012-11-07 0.004452 2.2331 128.2051 0.0 6.0 0.0 0.150 -0.645559
Equity(168 [AET]) 0.0 0.218178 0.398145 6.0 2013-01-31 0.002461 1.7525 11.8765 0.0 10.0 0.0 0.280 0.675684
Equity(185 [AFL]) 2.0 0.275700 0.499800 10.0 2014-05-02 0.001815 1.6337 8.5985 0.0 7.0 0.0 0.255 0.752985
Equity(197 [AGCO]) 0.0 0.408937 0.419417 5.0 2014-05-09 0.008890 1.4767 10.1010 0.0 5.0 1.0 0.135 0.545527
Equity(205 [AGN]) 2.0 0.405632 0.027323 6.0 2014-05-07 0.001369 6.3052 30.3951 0.0 12.0 0.0 0.360 0.385953
Equity(209 [AM]) 0.0 0.554759 0.465949 1.0 2014-01-08 0.078139 0.8646 12.5628 0.0 0.0 0.0 0.005 0.392810
Equity(216 [HES]) 1.0 0.327458 0.554425 8.0 2014-05-08 0.001859 1.1053 9.2081 0.0 7.0 0.0 0.230 0.782566
Equity(239 [AIG]) 0.0 1.180222 0.476461 9.0 2013-05-02 0.000753 0.6144 10.1833 0.0 9.0 0.0 0.270 0.745707
Equity(266 [AJG]) 2.0 0.465549 0.078283 6.0 2014-04-24 0.008561 3.2321 25.5754 0.0 4.0 0.0 0.160 0.229721
Equity(270 [AKRX]) 1.0 0.606238 -0.066512 3.0 2013-02-26 0.031858 6.7249 38.7597 0.0 4.0 0.0 0.130 0.031630
Equity(300 [ALK]) 1.0 0.647059 0.132748 2.0 2014-05-09 0.010629 2.9647 14.1243 1.0 6.0 1.0 0.155 0.277119
Equity(301 [ALKS]) 1.0 0.401221 -0.036207 1.0 2013-01-31 0.011252 4.2992 166.6667 1.0 3.0 0.0 0.090 0.042542
Equity(328 [ALTR]) 1.0 0.144936 0.244554 13.0 2014-04-25 0.004495 2.9709 18.4502 0.0 6.0 0.0 0.230 0.470059
Equity(337 [AMAT]) 1.0 0.272511 0.061298 7.0 2014-02-20 0.002848 2.2655 666.6667 1.0 3.0 1.0 0.105 0.163450
Equity(338 [BEAM]) 2.0 0.473430 0.130956 4.0 2013-05-02 0.004425 2.2257 23.9808 1.0 4.0 0.0 0.145 0.271531
Equity(351 [AMD]) 1.0 4.925301 -1.269100 17.0 2014-05-01 0.022863 4.8544 10.9649 2.0 3.0 1.0 0.150 -1.141964
Equity(353 [AME]) 2.0 0.504820 0.078560 2.0 2014-05-06 0.004646 3.7807 21.0084 0.0 5.0 0.0 0.165 0.238914
Equity(357 [TWX]) 2.0 0.640024 0.147730 8.0 2013-02-06 0.000827 1.8580 18.3486 0.0 14.0 0.0 0.420 0.566903
... ... ... ... ... ... ... ... ... ... ... ... ... ...
Equity(42764 [RPAI]) 1.0 0.160050 0.000000 1.0 2013-02-19 0.013040 1.5145 0.0000 0.0 1.0 0.0 0.045 0.031960
Equity(42783 [OAK]) 1.0 2.007751 -0.341451 3.0 2013-02-14 0.005878 23.5849 10.6270 0.0 2.0 0.0 0.080 -0.267328
Equity(42784 [FET]) 0.0 0.310854 0.233681 3.0 2014-04-29 0.017994 2.1744 18.1159 0.0 8.0 0.0 0.215 0.430688
Equity(42786 [MRC]) 3.0 0.871799 -0.016865 1.0 2014-05-02 0.015126 2.4740 23.9808 1.0 6.0 0.0 0.195 0.163009
Equity(42788 [PSX]) 0.0 0.000000 0.000000 5.0 2014-05-01 0.001221 1.7683 7.9177 0.0 7.0 0.0 0.200 0.198779
Equity(42811 [TUMI]) 0.0 0.000000 0.164333 1.0 2013-08-08 0.029473 4.8544 34.8432 0.0 2.0 0.0 0.055 0.189860
Equity(42815 [SPLK]) 2.0 0.000000 0.000000 3.0 2013-02-28 0.011214 17.3010 0.0000 0.0 9.0 0.0 0.270 0.258786
Equity(42821 [BLOX]) 0.0 0.000000 0.000000 1.0 2014-03-07 0.043440 6.6622 0.0000 0.0 6.0 0.0 0.155 0.111560
Equity(42885 [EVER]) 1.0 1.998853 -0.268444 1.0 2014-04-30 0.023554 1.4440 19.9601 0.0 4.0 0.0 0.120 -0.171998
Equity(42917 [WMC]) 1.0 9.164099 0.000000 2.0 2013-04-05 0.084615 1.0999 0.0000 0.0 1.0 0.0 0.050 -0.034615
Equity(42950 [FB]) 2.0 0.190968 0.000711 11.0 2014-04-25 0.000686 5.6786 588.2353 0.0 17.0 0.0 0.510 0.510024
Equity(43032 [HTA]) 0.0 0.827065 0.000000 3.0 2013-02-21 0.016457 2.1066 0.0000 0.0 3.0 0.0 0.090 0.073543
Equity(43085 [BKW]) 0.0 2.547660 -0.714020 3.0 2013-02-15 0.007280 5.3022 46.0829 1.0 1.0 0.0 0.035 -0.686299
Equity(43127 [NOW]) 0.0 0.000000 0.000000 3.0 2014-05-07 0.008374 20.8333 0.0000 0.0 6.0 0.0 0.165 0.156626
Equity(43201 [FIVE]) 1.0 0.487674 37.386513 5.0 2013-03-27 0.022522 28.9017 0.0888 0.0 2.0 0.0 0.090 37.453991
Equity(43202 [PANW]) 1.0 0.000000 0.000000 10.0 2013-03-05 0.011773 16.0772 0.0000 0.0 9.0 0.0 0.290 0.278227
Equity(43298 [LVNT_A]) 0.0 0.000000 0.000000 0.0 1970-01-01 0.017044 0.0000 0.0000 0.0 1.0 0.0 0.025 0.007956
Equity(43399 [ADT]) 0.0 0.480053 0.134083 2.0 2014-01-30 0.004825 2.0691 25.0627 0.0 3.0 1.0 0.070 0.199258
Equity(43405 [KRFT]) 0.0 2.664083 -0.671928 0.0 2014-05-02 0.001505 8.1766 19.0114 0.0 0.0 0.0 0.000 -0.673432
Equity(43413 [TRLA]) 2.0 0.049626 0.000000 0.0 2014-05-02 0.049408 4.6533 0.0000 0.0 3.0 0.0 0.105 0.055592
Equity(43500 [RLGY]) 0.0 0.000000 0.000000 1.0 2013-05-01 0.006585 4.8544 0.0000 1.0 4.0 0.0 0.100 0.093415
Equity(43510 [WDAY]) 0.0 0.042176 0.000000 10.0 2013-03-07 0.004487 17.3310 0.0000 0.0 6.0 0.0 0.200 0.195513
Equity(43513 [LNCO]) 0.0 1.453542 0.000000 0.0 2012-10-12 0.030990 1.2618 0.0000 0.0 0.0 0.0 0.000 -0.030990
Equity(43572 [WWAV]) 1.0 0.000000 0.000000 3.0 2012-11-30 0.015747 3.5051 25.9740 0.0 5.0 0.0 0.155 0.139253
Equity(43694 [ABBV]) 1.0 0.000000 0.000000 6.0 2012-08-07 0.000632 24.6914 13.6054 0.0 4.0 0.0 0.145 0.144368
Equity(43713 [PBF]) 2.0 0.872220 0.911042 1.0 2014-05-07 0.015663 6.9300 2.8893 0.0 3.0 0.0 0.110 1.005379
Equity(43718 [SBY]) 1.0 0.000000 0.000000 2.0 1970-01-01 0.061413 1.0918 0.0000 0.0 1.0 0.0 0.050 -0.011413
Equity(43919 [LMCA]) 0.0 0.000000 0.000000 1.0 1970-01-01 0.003328 0.9696 1.5024 0.0 3.0 0.0 0.080 0.076672
Equity(43981 [NCLH]) 0.0 1.478788 -0.327565 2.0 2013-02-11 0.007282 2.6660 82.6446 0.0 4.0 0.0 0.110 -0.224847
Equity(44060 [ZTS]) 0.0 0.000000 0.000000 4.0 2014-05-13 0.002790 23.3100 35.4610 0.0 5.0 0.0 0.145 0.142210

1500 rows × 13 columns

In [50]:
# Now lets create a new dataframe with just the top 25 highest potential securities and call it my_buys

my_buys = result.sort('Potential', ascending = False).head(25)

my_buys
Out[50]:
Buys D/E Financials_ratio Holds Last_filing Market_cap_coefficient P/B P/E Sells Strong_buys Strong_sells Rating_coefficient Potential
2013-05-06 00:00:00+00:00 Equity(43201 [FIVE]) 1.0 0.487674 37.386513 5.0 2013-03-27 0.022522 28.9017 0.0888 0.0 2.0 0.0 0.090 37.453991
Equity(26740 [NRF]) 0.0 3.443830 3.372239 1.0 2014-05-09 0.023305 1.8242 0.7685 0.0 2.0 0.0 0.055 3.403934
Equity(40530 [TROX]) 0.0 0.580710 1.622407 2.0 2013-11-07 0.019788 0.9391 2.2815 0.0 1.0 0.0 0.035 1.637619
Equity(19127 [KCG]) 0.0 0.264110 1.632588 7.0 2013-05-01 0.036358 0.8526 2.5069 0.0 0.0 1.0 0.020 1.616229
Equity(764 [OMX]) 1.0 0.964460 1.564368 6.0 2013-02-20 0.046001 0.9394 2.1772 0.0 2.0 0.0 0.095 1.613368
In [ ]: