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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
646 6 13 25

get_timeseries "normalize" parameter

From https://docs-developers.thomsonreuters.com/1542058370099/14684/book/en/eikon/index.html#get_timeseries

"if set to True, the function will return a normalized data frame with the following columns 'Date','Security','Field'"

With 1 RIC in the query the result looks like described in the doc:

The table with the headers: TIMESTAMP, STRING, STRING.

However, when I use 2 RICs in the query, dataFrame["Date"] or dataFrame["Security"] returns a series, but not a single element.

for row in range(0, len(dataFrame)):
    ric = dataFrame["Security"][row]
    date = dataFrame["Date"][row]
    field = dataFrame["Field"][row]
    value = dataFrame["Value"][row]

This code works fine when there is only 1 ric in the request/result. And it does not for multiply rics.

Isn't "normalize=true" supposed to convert it to the same structure for all possible results?

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
Accepted
39.2k 75 11 27

Thanks for reporting this. I see the inconsistency as you described it. It's easy enough to work around of course, but I guess what you're looking for is to future proof you code and I'm not sure what to recommend here. I cannot be certain at this point, but I don't think there would be much appetite to address this issue in the Python library for Eikon 4. So, if you implement the workaround of handling single RIC case separately from multiple RICs case, it's very likely to be future proof for Eikon 4. And for Eikon 5 I anticipate breaking changes I cannot fully predict yet. In Eikon 5 get_timeseries method will likely retrieve timeseries from a different Web service, which will provide richer timeseries datasets.
Personally I don't use the normalize option. I don't think it presents the data in a more usable form than the non normalized dataframe. In my opinion, if you're looking to traverse the timeseries you retrieve, your best choice is to use normalize=False and an explicitly defined list of fields (as opposed to omitting the fields parameter and retrieving all fields available for a RIC). I think this way you get the most predictability regarding the structure of the dataframe returned.

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.

@Alex Putkov. all your assumptions are correct. I thought it would be easier to convert the result from 1 'normalized' data structure than from 2 or 3, that's why I tried "normalize=True". And yes, I found a solution.

So I just wanted to report this issue.

Thanks

Click below to post an Idea Post Idea