For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
1 0 0 0

Methodology of Weighted Average Index

Client has an Index (Russell 2500 Growth) and is pulling P/E FY1 using Tr.PriceClose and Tr.EPSMean FY1 , and then finding the weighted average. And now has a question about methodology.


Below Client is pulling PE values that include negative and do NOT include negative values:

Index_PE_nonneg = (Index_PE['Earnings Per Share - Mean FY1'] > 0) & (Index_PE['Earnings Per Share - Mean FY2'] > 0) ]

Index_PE['Index Weight']=Index_PE['Index Weight']/Index_PE['Index Weight'].sum()

Index_PE_nonneg['Index Weight'] = Index_PE_nonneg['Index Weight']/Index_PE_nonneg['Index Weight'].sum()


And pulling Weights of the each consituent:

Index_MC = Index_DF_Raw[['Index Weight','Index Shares','Company Market Cap (Millions)','Price Close']].sort_values(by = 'Company Market Cap (Millions)',ascending = False)

MC_Available = Index_DF_Raw['Company Market Cap (Millions)'].notnull().sum()

Index_MC.dropna(subset=['Company Market Cap (Millions)'],inplace=True)

Index_MC['Index Weight'] = Index_MC['Index Weight']/Index_MC['Index Weight'].sum()


for i in range(3):

if i == 0:

Index_PE_nonneg['PE FY{}'.format(i)] = Index_PE_nonneg["Price Close"]/Index_PE_nonneg['Diluted EPS Excluding Extraordinary Items FY{}'.format(i)]

Index_PE['PE FY{}'.format(i)] = Index_PE["Price Close"]/Index_PE['Diluted EPS Excluding Extraordinary Items FY{}'.format(i)]

else:

Index_PE_nonneg['PE FY{}'.format(i)] = Index_PE_nonneg["Price Close"]/Index_PE_nonneg['Earnings Per Share - Mean FY{}'.format(i)]

Index_PE['PE FY{}'.format(i)] = Index_PE["Price Close"]/Index_PE['Earnings Per Share - Mean FY{}'.format(i)]

Index_PE_nonneg['HM FY{}'.format(i)] = Index_PE_nonneg['Index Weight']/Index_PE_nonneg['PE FY{}'.format(i)]

Index_PE['HM FY{}'.format(i)] = Index_PE['Index Weight']*(1/Index_PE['PE FY{}'.format(i)])

Index_HM['FY{} positive'.format(i)] = round(1/Index_PE_nonneg['HM FY{}'.format(i)].sum(),2)

Index_HM['FY{} incl neg'.format(i)] = round(1/Index_PE['HM FY{}'.format(i)].sum(),2)


Client has a question regarding how python integrates negative PE values, how they incorporate very high PE and very low PE values in part of the weighted average.


eikoneikon-data-apiworkspaceworkspace-data-apirefinitiv-dataplatform-eikonpython
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvotes
39.2k 75 11 27

@Punal Bhavsar

I'm afraid I don't understand what you're asking. Perhaps there's a larger context here that is required to understand the question? Otherwise I'm not following what the client is trying to calculate, what (if any) issues they're experiencing or what "how python integrates negative PE values" means. Does this statement refer to to the snippet of the Python code you provided? If yes, to which part of the code? Or does it refer to the methodology mentioned at the beginning of your post? If the latter, what methodology are we talking about?
From the code snippet all I can see is that there's some data manipulation happening with some pandas dataframes. I may be able to make an educated guess about what data these data frames contain based on column labels provided in the code snippet. But I'm afraid I cannot tell what the intention of all this data manipulation is, what logic this code is looking to implement and most importantly what assistance the client is looking for from Refinitiv.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea