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.

Hello @flakej

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?


If so please can you click the 'Accept' text next to the appropriate reply? This will guide all community members who have a similar question.

Thanks,


AHS

Upvote
Accepted
79.2k 251 52 74

@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
79.2k 251 52 74

@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.