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

I'm trying to obtain a list of advisors and their roles in M&A deals. How can I be sure to assign the roles correctly when advisors have multiple roles?

I'm trying to obtain a list of advisors and their roles in M&A deals. I have code to pull the deals, but the advisors and the roles come in a concatenated field. Some advisors have multiple roles. If the first advisor has two roles and the second advisor has one role, how can I be sure to assign the roles correctly?

In the Screener App in Eikon, I can change the setting to display managers as row. Can I create a pandas DataFrame through the API to replicate that option?


sdc-example.png

For example:

Advisor Names:

'BNP Paribas SA|UBS Investment Bank|Nordea'

are associated with the following roles:

'Advisory|Advisory|Arranged Financing|Advisory'. In this case, how could I be sure which advisor arranged financing?

Here's the code I have to pull the deals:

df = pd.DataFrame()
errs = []
for y in range(1980,2023):
    print(f'processing {y} ..............')
    deal,err = ek.get_data("SCREEN(U(IN(DEALS)),BETWEEN(TR.MnAAnnDate,"+str(y)+"0101,"+str(y)+"1231))",
                   fields = ["TR.MnASDCDealNumber","TR.MnADealValue(Scale=9)","TR.MnAAnnDate",
                             "TR.MnAAcquirorFinAdvisor(Concat='|')","TR.MnAAcquirorFinAdvisorParentLong(Concat='|')",
                             "TR.MnAAcquirorFinRole(Concat='|')"])
    errs.append(err)
    if deal is None:
        print(f'no data for {y} ..............')
        continue
# remove deal values with <NA>
    deal = deal[(deal['Deal Value'].notna())]
# remove deals with no financial advisors
    deal = deal[(deal['Acquiror Financial Advisors Name'].notna())]
    df = pd.concat([df,deal],ignore_index=True)
#contentdeals
sdc-example.png (24.2 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.

Upvote
Accepted
80k 257 52 75

@flakej

It can be used like this:

deal,err = ek.get_data("SCREEN(U(IN(DEALS)),BETWEEN(TR.MnAAnnDate,"+"20231201,"+"20231231))",
                   fields = ["TR.MnASDCDealNumber","TR.MnADealValue(Scale=9)","TR.MnAAnnDate",
                             "TR.MnAAcquirorFinAdvisor",
                             "TR.MnAAcquirorFinAdvisor.AdvisorCode",
                             "TR.MnAAcquirorFinRole",
                             "TR.MnAAcquirorFinRole.AdvisorCode",
                          ])
deal

1704179359028.png



1704179359028.png (41.3 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.

Thanks for the guidance. That is what I tried and the API only returns one row for each deal. I use the code provided and then identify the deal posted in the screenshot. I only find one row for that deal.

deal2,err = ek.get_data("SCREEN(U(IN(DEALS)),BETWEEN(TR.MnAAnnDate,"+str(2023)+"1214,"+str(2023)+"1214))",
                   fields = ["TR.MnASDCDealNumber",
                   "TR.MnADealValue(Scale=9)","TR.MnAAnnDate",
                   "TR.MnAAcquirorFinAdvisor",
                   "TR.MnAAcquirorFinAdvisor.AdvisorCode",
                   "TR.MnAAcquirorFinRole",
                   "TR.MnAAcquirorFinRole.AdvisorCode"])

1704291282634.png


1704291282634.png (34.2 KiB)

@flakej

They are these rows.

1704799206657.png

1704799206657.png (57.5 KiB)
Upvote
80k 257 52 75

@flakej

Thank you for reaching out to us.

I think you can use the TR.MnAAcquirorFinAdvisor.AdvisorCode, and TR.MnAAcquirorFinRole.AdvisorCode fields for mapping.


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.

Thanks for pointing me to those codes. Sorry for my ignorance as I am just starting to use the eikon API. Can you provide me a bit more guidance on how to use TR.MnAAcquirorFinAdvisor.AdvisorCode, and TR.MnAAcquirorFinRole.AdvisorCodeor where I might turn to for resources on how to use them? In the Screener app, I can change the setting to display manager as row. That is essentially what I'm trying to create via the API and save in a pandas DataFrame.

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.