"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?
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.