python - Panda Python 错误:无法将字符串转换为浮点数
问题描述
我无法将我的字符串更改为浮点值。我是 Python 新手,在堆栈溢出方面找不到任何类似的问题。对不起,如果我错过了...
我的数据片段。
我的代码看起来像这样
import pandas as pd
import numpy as np
data = pd.read_csv('data.csv')
dt = data.rename(columns = {"Unnamed: 0": "test", "Unnamed: 1": "name", "Unnamed: 2": "week"})
dt.dtypes
输出
test object
name object
week object
Total object
§83 object
§83.1 object
Unnamed: 6 object
Unnamed: 7 object
Unnamed: 8 object
Unnamed: 9 object
Unnamed: 10 object
§83.2 object
Unnamed: 12 object
Unnamed: 13 object
Unnamed: 14 object
Unnamed: 15 object
Unnamed: 16 object
§83a object
Unnamed: 18 object
Unnamed: 19 object
Unnamed: 20 object
Unnamed: 21 object
Unnamed: 22 object
dtype: object
想改变我在 Col Total 中的字符串以浮动
dt.Total = dt.Total.astype(float)
错误:ValueError: could not convert string to float: 'Total'
有关总信息,请参见下文
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-78-ad6ed6a5e004> in <module>
----> 1 dt.Total = dt.Total.astype(float)
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pandas/core/generic.py in astype(self, dtype, copy, errors)
5546 else:
5547 # else, only a single dtype is given
-> 5548 new_data = self._mgr.astype(dtype=dtype, copy=copy, errors=errors,)
5549 return self._constructor(new_data).__finalize__(self, method="astype")
5550
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pandas/core/internals/managers.py in astype(self, dtype, copy, errors)
602 self, dtype, copy: bool = False, errors: str = "raise"
603 ) -> "BlockManager":
--> 604 return self.apply("astype", dtype=dtype, copy=copy, errors=errors)
605
606 def convert(
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pandas/core/internals/managers.py in apply(self, f, align_keys, **kwargs)
407 applied = b.apply(f, **kwargs)
408 else:
--> 409 applied = getattr(b, f)(**kwargs)
410 result_blocks = _extend_blocks(applied, result_blocks)
411
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pandas/core/internals/blocks.py in astype(self, dtype, copy, errors)
593 vals1d = values.ravel()
594 try:
--> 595 values = astype_nansafe(vals1d, dtype, copy=True)
596 except (ValueError, TypeError):
597 # e.g. astype_nansafe can fail on object-dtype of strings
/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pandas/core/dtypes/cast.py in astype_nansafe(arr, dtype, copy, skipna)
995 if copy or is_object_dtype(arr) or is_object_dtype(dtype):
996 # Explicit copy, or required since NumPy can't view from / to object.
--> 997 return arr.astype(dtype, copy=True)
998
999 return arr.view(dtype)
ValueError: could not convert string to float: 'Total'
解决方案
如果您的任何列包含字符串值(甚至是字母表),python 将在尝试将其转换为float或int时显示错误。TOTAL 列的前两行是字符串。出于这个原因,在尝试将列值转换为浮点数之前,您可能希望删除这些值或将它们替换为一些其他合适的值。
推荐阅读
- odoo - 如何为 res.user 而不是 res.partner 在 Odoo 的 Web 模块中自动登录?
- javascript - 使用 VueJs 导入 json 的问题
- python - 在 Heroku 上部署 Django?
- javascript - 将存储的数组对象显示为 Javascript 到 HTML 中的列表
- java - 如何提供静态页面
- python - Neo4j 连接失败 - Bitnami AWS
- asp.net-core - 我可以在 .Net 标准库(不是 .Net Framewrok 库)中使用 Entity Framework 6.4 吗?如果是,如何?
- python - 计算字符串中子字符串的所有非重叠出现次数
- python - 将 Python 的 binascii.crc_hqx() 转换回 ascii
- mysql - NodeJS->错误无法读取未定义的属性“长度”