Я пытаюсь преобразовать столбец типа объекта в float.Не работает - PullRequest
0 голосов
/ 05 апреля 2019
TSRdfr["Return"] = pd.to_numeric(TSRdfr.Return, errors='coerce')

Это не преобразование типа данных Return из объекта в float64.Я попытался удалить errors ='coerce', чтобы увидеть, что происходит.

Я получаю сообщение об ошибке:

Невозможно проанализировать NaN в позиции 0

, когда я не использую errors = 'coerce'.

Доступ к номерам возврата осуществляется через API Refinitiv Eikon.Я предполагаю, что они слишком велики, чтобы конвертировать в float64.Есть предложения ??

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Если ваш номер слишком велик, вы можете использовать десятичную библиотеку

import decimal
decimal.getcontext().prec = 100
df[col] = df[col].map(lambda x: decimal.Decimal(x))
0 голосов
/ 05 апреля 2019

Попробуйте следующее:

import pandas as pd
import re
repat = re.compile('\d+(?:\.\d+)?')

# sample data frame 
df = pd.DataFrame({'Return': ['some data 123.123', 'tick 0.12']})

df.loc[:, 'Converted'] = df.Return.apply(lambda x: float(repat.findall(x)[0]))

Надеюсь, что поможет

...