Upgrade from Eikon -> Workspace. Learn about programming differences.

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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
3 0 0 3

Historical ownership data over time

Hi everyone, I'm kinda new in refinitiv and I wanted to get the historical ownership over time of some companies for a 20 year span.

equinor.png

I have found that data is available in workspace but I was wondering how could I get it through the api to directly export it into a .CSV file


df = ek.get_data('EQNR.OL', ['TR.PctOfSharesOutHeld', 'TR.InvestorFullName'],
                 {'SDate': '-20', 'EDate': '0', 'Frq': 'Y'}) 

#How can I make it so it extracts data from 1-1-2000 to 1-1-2024?


# Extract the DataFrame from the returned tuple
actual_df = df[0]
filtered_df = actual_df[actual_df['Investor Full Name'].str.contains(
"Vanguard|BlackRock|StateStreet", case=False, na=False)]


I want it to contain the information of these three investors in their multiple countries, so just rows that contain either of those three names.

My programming skills are no good, anyone can help me out please?

Also, is there any way to scalate it so I can get data for multiple companies in just one .csv?

Thanks so much in advance!

#product#contentpython apidownload-file
equinor.png (318.6 KiB)
icon clock
10 |1500

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

@jon.alonso

Hi,

Thank you for your participation in the forum.

Is the reply below satisfactory in answering your question?

If yes please click the 'Accept' text next to the reply and then close the question. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

Upvote
Accepted
79.2k 251 52 74

@jon.alonso

Thank you for reaching out to us.

I checked the Data Item Browser tool and found that the TR.PctOfSharesOutHeld field doesn't support the EDate parameter.

You can use the SDate parameter to get the data on a specific date.

The code look like this:

df, err = ek.get_data('EQNR.OL', ['TR.PctOfSharesOutHeld.InvestorPermId',
                                  'TR.PctOfSharesOutHeld.Date','TR.PctOfSharesOutHeld'],
                 {'SDate': '2020-12-31', 
                  'StartNum':0, 
                  'EndNum':100})

df["Investor Perm Id"] = df["Investor Perm Id"].astype('Int64').astype('string')
df_company, err = ek.get_data(df["Investor Perm Id"].to_list(),['TR.CommonName'])

df_company["Instrument"] = df_company["Instrument"].astype('Int64').astype('string')
pd.merge(df, df_company, left_on="Investor Perm Id",right_on="Instrument")

The TR.PctOfSharesOutHeld.InvestorPermId field contains the PermIDs of the investors so I need to send another request to get the common names of those investor PermIDs.

df["Investor Perm Id"] = df["Investor Perm Id"].astype('Int64').astype('string')
df_company, err = ek.get_data(df["Investor Perm Id"].to_list(),['TR.CommonName'])

Then, I merged those two dataframes together by using the investor PermIDs.

df_company["Instrument"] = df_company["Instrument"].astype('Int64').astype('string')
pd.merge(df, df_company, left_on="Investor Perm Id",right_on="Instrument")

The output looks like this:

1710147873378.png

You can change the value in the SDate parameter to get data on another date.

df, err = ek.get_data('EQNR.OL', ['TR.PctOfSharesOutHeld.InvestorPermId',
                                  'TR.PctOfSharesOutHeld.Date','TR.PctOfSharesOutHeld'],                  { 'SDate': '2020-12-31',                    'StartNum':0,                    'EndNum':100})

However, you need to have some programming skills to do it.

If not, I suggested you to use the Excel instead. Please contact Eikon or Workspace support team directly via MyRefinitiv regarding how to retrieve those values in Excel.


1710147873378.png (38.0 KiB)
icon clock
10 |1500

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

Upvotes
3 0 0 3

Hi! @Jirapongse Sorry I had limited internet availability! But yeah it worked pretty well, thank you so much!

icon clock
10 |1500

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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