迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中 TypeError: Cannot Convert the Series to <Class 'Float'> 错误

作者:迹忆客 最近更新:2023/07/05 浏览次数:

通过这个解释,我们将了解为什么会收到错误 TypeError: cannot convert the series to <class 'float'>。 我们还将学习如何修复它并更改 Python 中 Pandas 系列的数据类型。


在 Python 中无错误地转换 Pandas 系列的数据类型

让我们来看一个示例数据集。 我们将导入 Pandas 库,然后导入数据集; 我们将从各国的酒精消费量开始。

我们将声明一个名为“Alcohol”的变量,并从 http://bit.ly/drinksbycountry 读取 CSV 文件。

执行以下代码后,我们将查看 head(),我们应该看到六列和四行数字。

import pandas as pd

Alcohol = pd.read_csv('http://bit.ly/drinksbycountry')
Alcohol.head()

输出:

python typeerror无法将系列转换为类float - 数据集

我们来看看这些列的数据类型。 我们将使用酒精数据框的 dtypes 属性来查找数据类型。

Alcohol.dtypes

现在我们将看到三列是整数列,一列是浮点列,然后两列是对象,这意味着国家和大陆只是字符串。

输出:

列的数据类型

假设我们想要将spirit_servings 列转换为浮点而不是整数。 我们所要做的就是使用系列方法 astype() 并将其传递给 float,这意味着我们将其转换为浮点类型。

如果我们想要修改数据框,可以添加新列或覆盖现有的spirit_servings列。 如果我们定义 dtypes 来检查列的数据类型,我们会看到它已经改变,spirit_servings 现在是一个浮点列。

Alcohol['spirit_servings']=Alcohol.spirit_servings.astype(float)
Alcohol.dtypes

输出:

使用 astype() 转换 Spirit_Servings 列

现在您可能想知道它有什么用。 当您有一个数据文件,其中数字存储为字符串并已将其读入 Pandas 字符串但想要对其进行数学运算时,通常会执行此操作。

要对列进行数学运算,它必须是数字类型,因此列类型应该是浮点数,这是更常见的用例。 如果不将其转换为 float 类型,您将收到类似 TypeError: Cannot Convert the Series to <class 'float'> 的错误。

又出现了一个问题:在实际读取 CSV 文件之前,它是如何找到每一列的类型的? 现在我们将在CSV读取过程中更改数据类型; 我们必须再添加一个参数,dtype。

我们将它传递给字典; 字典键是spirit_servings,字典值是浮点数。 现在,如果我们检查该列的数据类型,我们会看到,spirit_servings 再次转换为浮点型。

Alcohol = pd.read_csv('http://bit.ly/drinksbycountry',dtype={'spirit_servings':'float'})
Alcohol.dtypes

输出:

使用 dtype 转换 Spirit_Servings 列

这个和上面唯一的区别是这个方法是在读取过程中进行的。 在上面,我们在创建数据框后对其进行了转换。


Python 中无错误转换 Pandas 系列数据类型的另一个示例

现在我们将向您展示另一个数据集和另一个使用芯片订单数据的示例。

CHIP_ORDERS=pd.read_table('http://bit.ly/chiporders')
CHIP_ORDERS.head()

我们来看一下专栏。 我们想要关注 item_price 列。

chip订单数据

CHIP_ORDERS.dtypes

Pandas 将 item_price 列存储为对象,即字符串,因为它不明白这些是数字。

chip订单列的数据类型

为了用它做一些数学运算,我们必须从一系列中删除一个字符,比如 $ 符号。 我们可以使用 str 和 Replace() 方法将美元符号替换为空,但这还不够; 如果我们尝试对级数应用数学运算,则会出现错误。

CHIP_ORDERS.item_price.str.replace('$','').mean()

输出:

ValueError: could not convert string to float: '2.39 3.39 3.39...

这是因为即使我们删除了美元符号,它仍然是一个字符串,所以我们必须将其类型转换为浮点数。 将其类型转换为浮点数后,我们可以对其进行数学运算。

CHIP_ORDERS.item_price.str.replace('$','').astype(float).mean()

输出:

使用 astype 将类型转换为浮点数

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中错误 ValueError: No JSON Object Could Be Decoded

发布时间:2023/07/06 浏览次数:123 分类:Python

我们将讨论名称错误、如何将 Python 对象编码为 JSON,以及如何将相邻字符串解码为 Python 对象。 我们还去了解一下为什么解析JSON数据失败。ValueError: No JSON Object Could Be Decoded

Python 错误 Can't Find Main Module

发布时间:2023/07/06 浏览次数:141 分类:Python

在本文中,我们将讨论 Python 中找不到“__main__”模块的错误、其原因以及如何解决该错误。解决Python中can't find '__main__' module错误

Python File Not Found 错误

发布时间:2023/07/06 浏览次数:146 分类:Python

FileNotFoundError 是一个常见错误,当 Python 无法找到要打开的文件时就会出现该错误。 本文将讨论Python中的 FileNotFoundError 及其解决方案。Python 中的文件 I/O

Python 中 Function Is Not Defined 错误

发布时间:2023/07/05 浏览次数:153 分类:Python

通过这个解释,我们将了解当 Python 程序显示类似 NameError: name '<functionName>' is not Defined 的错误时会出现什么情况,即使脚本中存在该函数。

修复 Python 中错误 TypeError: 'map' Object Is Not Subscriptable

发布时间:2023/07/05 浏览次数:183 分类:Python

本文将讨论 TypeError: 'map' object is not subscriptable,它是 TypeError 的子类。 当我们尝试执行与对象类型不兼容的操作时,我们会遇到类型错误。Python 中出现 TypeError: 'map' object is not subscriptable 错误的

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便