我正在尝试将对象类型列转换为float。不起作用

2024-04-24 19:54:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

这不是将Return的数据类型从对象转换为float64。我试着移除errors ='coerce',看看发生了什么。你知道吗

我得到一个错误,说:

Unable to parse NaN at position 0

当我不使用errors = 'coerce'。你知道吗

返回编号可从Refinitiv Eikon API访问。我假设它们太大,无法转换成float64。有什么建议吗??你知道吗


Tags: to对象returnparse错误nanatpd
2条回答

请尝试以下操作:

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

希望有帮助

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

import decimal
decimal.getcontext().prec = 100
df[col] = df[col].map(lambda x: decimal.Decimal(x))

相关问题 更多 >