Smart Estimates Multiple comes in string format

I would like to create a dcf calculation for all members of the S&P500. I want to calculate the terminal bvalue using the EV/FCF Smart Estimate multiple. The problem is that the values are strings containing spaces between each number that are not visible and cannot be removed. (can’t convert data type)

df_Data, err = ek.get_data(

instruments = df_RICList,

fields = ['TR.Close.Date','TR.Close','TR.F.TotCurrAssets','TR.F.TotCurrLiab','TR.F.NetCashFlowOp','TR.TotalDebtToEV','TR.TURNOVER','TR.F.ActualROA','TR.F.GrossProfMarg','TR.F.DebtTot','TR.WACC','TR.F.ComShrOutsTot(Period=FY0)','TR.EVtoFCFSmartEst(Period=FY3)','TR.FCFMean(Period=FY0)','TR.FCFMean(Period=FY1)','TR.FCFMean(Period=FY2)',

'TR.FCFMean(Period=FY3)','TR.FCFMean(Period=FY4)'],

parameters = {

'Curn': 'Native',

'SDate': '2021-01-01',

'EDate': '2022-01-01',

'Frq': 'Y'})

Is there a solution for this problem or an alternative?


screenshot1.png

Best Answer

  • zoya faberov
    Answer ✓

    Hello @schoeced ,

    I have run the code excerpt, with a short RIC list:

    df_RICList = ['IBM.N','VOD.L','LSEG.L']

    The result looks like this on my side:

    nans.gif

    I see strings that are prices and some strings that are NaNs. Is this what you see as well?

    If that is the case, you could convert this column to floats, introducing a new column, something like:

    df_Data['floatEV'] = df_Data['EV / Free Cash Flow (SmartEstimate ®)'].astype(float)
    df_Data['floatEV']

    Resulting in (may also optionally increase display precision) :

    floatev.gif

    You can consequently also drop rows with NaNs if they are not relevant for your required calculation, or replace them with 0s if that is more convenient.

    Let us know if this helps, or if you were looking for something different?