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
1 0 0 0

Eikon API - Extracting Ownership Information at the Quarter Level

I am using the Eikon API to pull firm ownership information in Python. I only need the resulting df to contain four variables: the firm's ticker, the date for the shares held, the number of shares held, and the investor type. My issue is that it is pulling the information for each specific investor, whereas I would like for it to pull the information aggregated for each investor type at the quarter level. This results in the data pull taking an excessive amount of time.

Here is the code I am currently using:

df, err = ek.get_data('AAPL.O', ['TR.SharesHeld.calcdate', 'TR.SharesHeld', 'TR.InvestorType'],

{'SDate': '2023-01-01',

'Edate': '2023-12-31',

'FRQ':'Q'})

eikon-data-apipythonworkspace#technology
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.

Upvote
Accepted
15.3k 32 5 10

Hi @Christian Hutzler1268 ,

As checked this field in the Data Item Browser, 'series' of data isn't available, only 'as of' is.

1721896779131.png

Hence I tried to run the code to retrieve the data on specific date and it works.

Could you please try the code below?

import pandas as pd

# generate date for each quarter in year 2023 to be used as 'SDate' parameter
p = pd.period_range('2023-01-01', periods=4, freq='Q')
quarters = p.strftime('%Y-%m-%d')

sum_df = None
for quarter in quarters:
    df, err = ek.get_data('AAPL.O', ['TR.SharesHeld.calcdate', 'TR.SharesHeld', 'TR.InvestorType'],
                          {'SDate': quarter})
    if sum_df is None:
        sum_df = df
    else:
        sum_df = sum_df.append(df)
sum_df

1721896895044.png

Hope this helps and please let me know in case you have any further questions


1721896779131.png (106.7 KiB)
1721896895044.png (28.8 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
1 0 0 0

Thanks.

The issue is that it pulls the data for each individual investor's holdings. As an example from above, for the 2023-03-31 calc date, there are multiple observations for both the "Investment Advisor/Hedge Fund" and "Investment Advisor" investor types, indicating that it it is pulling the data for all investors. This takes an excessive amount of time to pull. I want to pull the data aggregated by investor type. Do you have any suggestions on how to do this?

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.

Upvote
15.3k 32 5 10

Hi @Christian Hutzler1268 ,

Checking from Parameters tab in the Data Item Browser, the investor type can be applied to filter the type you want


1723616202433.png

import pandas as pd

# generate date for each quarter in year 2023 to be used as 'SDate' parameter
p = pd.period_range('2023-01-01', periods=4, freq='Q')
quarters = p.strftime('%Y-%m-%d')
 
sum_df = None
for quarter in quarters:
    df, err = ek.get_data('AAPL.O', ['TR.SharesHeld.calcdate', 'TR.SharesHeld.date', 'TR.SharesHeld', 'TR.InvestorType'],
                          {'SDate': quarter, 'TheInvestorType':'302'})
    if sum_df is None:
        sum_df = df
    else:
        sum_df = sum_df.append(df)
sum_df

1723616377161.png

Is this what you're looking for? I hope this helps and please let me know in case you have any further questions.


1723616202433.png (37.9 KiB)
1723616377161.png (16.8 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.

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.