UNICODE错误:在Python中将值转换为浮点值

2024-05-23 22:57:15 发布

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

我通过gpread从python中的google电子表格中提取一些数据,这些数据存储在一个dataframe中。你知道吗

我试图通过将数据帧中的两列相除来计算度量:

df['a']/df['b']

这将返回错误

TypeError: unsupported operand type(s) for /: 'float' and 'unicode'

我试着把它改成浮点数:

df['a'].astype(float)

但我得到了一个错误:

ValueError: invalid literal for float(): 2,217.93

我想逗号可能是个问题,所以我试着把它们去掉

df['a'] = df['a'].replace(',', '').astype(float)

但是当我试图把它转换成float时,我得到了同样的错误。你知道吗

当我这样做时:

df.applymap(np.isreal)

它说我从Google电子表格中提取的dataframe中的列不是真实的,但是我从其他地方得到的列是真实的。你知道吗

看起来gspread/googlesheets api正在将我的所有值转换为unicode。有人能建议我如何把它们转换成浮动的吗?你知道吗


Tags: 数据dataframedffor度量错误googleunicode
2条回答

我有时在玩数据帧时会出现类型错误。我现在总是在以前运行这一行,现在不会出现任何错误。你知道吗

# Convert all columns that can be converted into float into float.
df = df.apply(pd.to_numeric, errors='ignore')

回答我自己的问题是因为我设法解决了它。你知道吗

问题中的df是连接两个数据帧的结果-df1具有从数据库中提取的数据,df2具有通过googlesheet(gspread)API提取的数据。你知道吗

以前我曾尝试将df中的值强制转换为浮点值,但没有效果。然后,我将df2中的强制转换值更改为在连接之前浮动,这样就可以工作了。你知道吗

相关问题 更多 >