0
TSRdfr["Return"] = pd.to_numeric(TSRdfr.Return, errors='coerce')

这不是将数据类型Return从 Object 转换为float64. 我试着删除errors ='coerce'看看发生了什么。

我收到一条错误消息:

无法在位置 0 解析 NaN

当我不使用errors = 'coerce'.

退货编号可从 Refinitiv Eikon API 访问。我假设它们太大而无法转换为float64. 有什么建议么??

4

2 回答 2

0

如果您的数字太大,您可以使用十进制库

import decimal
decimal.getcontext().prec = 100
df[col] = df[col].map(lambda x: decimal.Decimal(x))
于 2019-04-05T03:55:14.470 回答
0

尝试以下操作:

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]))

希望有帮助

于 2019-04-05T03:47:39.967 回答