Trying to convert Total Return in a dataframe from Object type to float64 type. Not working.

I have a dataframe TSRdfr which I have accessed from Eikon API on Python.
Index Instrument Total Return
1. RIO.L. 15.990065
2. AAP.A. 22.543209
and so on ....
The data type of Total Return is Object which I need to convert to float64. I am using the syntax below.
TSRdfr["Total Return"] = pd.to_numeric(TSRdfr["Total Return"], errors='coerce')
This is not converting the data type of Return from Object to float64. I tried removing errors ='coerce' to see what's happening.
I am getting an error saying: "Unable to parse NaN at position 0"
The Return numbers are accessed from Refinitiv Eikon API. I am assuming they are too large to convert to float64. Any suggestions??
I know this question is not specific to Eikon API, but some help will be appreciated.
Best Answer
-
It's hard to say what's going on without having a copy of the dataframe or knowing exactly how it was created. Your assumption that the total return number is too large is definitely incorrect. Numeric data is returned by Eikon Data APIs as float64. Here's an example.
>>> df, err = ek.get_data(["RIO.L","AAP.A"],["TR.TotalReturn"])
More specifically, when get_data method constructs the dataframe and populates it with the values extracted from JSON retrieved from the Web service delivering the data, the method applies pandas to_numeric function to each column of the dataframe before returning the result. If your dataframe is constructed using get_data method there's no point in applying to_numeric function again.
>>> type(df['Total Return'][0])
<class 'numpy.float64'>
What struck me in your depiction of your dataframe is that the index appears to start at 1 and not at 0. I cannot help but wonder how this happened and whether this is related to to_numeric method applied to 'Total Return' column returning "Unable to parse NaN at position 0".
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 690 Datastream
- 1.5K DSS
- 629 Eikon COM
- 5.2K Eikon Data APIs
- 11 Electronic Trading
- 1 Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 255 ETA
- 560 WebSocket API
- 39 FX Venues
- 15 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 25 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 281 Open PermID
- 46 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 23 RDMS
- 2K Refinitiv Data Platform
- 724 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 106 UPA
- 194 TREP Infrastructure
- 229 TRKD
- 918 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 95 Workspace SDK
- 11 Element Framework
- 5 Grid
- 19 World-Check Data File
- 1 Yield Book Analytics
- 48 中文论坛