python - 如何将一列数据框从对象转换为浮点数
问题描述
听到的是我原来的数据框列类型:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 NAME 23605 non-null object
1 DEPARTMENT_NAME 23605 non-null object
2 TITLE 23605 non-null object
3 REGULAR 21939 non-null object
4 RETRO 13643 non-null object
5 OTHER 13351 non-null object
6 OVERTIME 6826 non-null object
7 INJURED 1312 non-null object
8 DETAIL 2355 non-null object
9 QUINN/EDUCATION INCENTIVE 1351 non-null object
10 TOTAL EARNINGS 23605 non-null object
11 POSTAL 23605 non-null object
我想将其中一些转换为浮点类型,比如总收入,我试过:
df['TOTAL EARNINGS'] = df['TOTAL EARNINGS'].astype(int)
和
df['TOTAL EARNINGS'] = pd.to_numeric(df['TOTAL EARNINGS'])
但我得到了:
ValueError: setting an array element with a sequence.
或者
TypeError: Invalid object type at position 0
而且我不知道为什么,还有其他方法可以做到吗?这是我的数据:https ://data.boston.gov/dataset/418983dc-7cae-42bb-88e4-d56f5adcf869/resource/31358fd1-849a-48e0-8285-e813f6efbdf1/download/employeeearningscy18full.csv
这是我的数据框的一些图片: 在此处 输入图像描述 在此处输入图像描述 在此处 输入图像描述
解决方案
发生这种情况是因为您的原始数据有 2 行完全是文本。
首先执行下面的命令来清理这些行。
df = df[df["TOTAL EARNINGS"]!="TOTAL EARNINGS"]
然后,更改数据类型
df['TOTAL EARNINGS'] = df['TOTAL EARNINGS'].astype(float)
之后您可以检查数据类型
df.dtypes
推荐阅读
- moodle - Moodle Manula 注册向上向下编辑
- ios - 如何在 swift 4 中获取 ISO8601 格式?
- node.js - Node js服务器从URL读取授权信息
- popper.js - 如何使用popper.js从referenceObject中偏移dataObject?
- c# - 如果我向类添加通用约束,则无法识别单元测试
- python - Tensorflow:如何编码和读取 bmp 图像?
- javascript - 如何在 JavaScript 中从数组中查找缺失的数字?
- angularjs - 无法实例化模块,KARMA
- r - 遍历 xts 中的列以查找每列最多 3 个值,其中日期为 R
- php - 雅虎 - imap_open()