python - pandas astype(float) 返回为 int
问题描述
我正在通过 DataQuest Data Analyst 路径工作,并且正在使用笔记本电脑数据集。我正在尝试将列从字符串转换为浮点数(该列包含以 GHz 为单位的 cpu 处理器速度)。
laptops["processor_speed_ghz"] = laptops["cpu"].str.split().str[-1]
laptops["processor_speed_ghz"] = laptops["processor_speed_ghz"].str.replace("GHz", "")
laptops["processor_speed_ghz"] = laptops["processor_speed_ghz"].astype(float)
print(laptops["processor_speed_ghz"].value_counts())
转换工作完美,除了当我检查新列时,它说类型是int64
而不是float64
. 不知道我做错了什么。
解决方案
这是预期的,因为函数的输出Series.value_counts
返回计数。因此,获取索引由浮点数填充的系列,系列的值是整数。
laptops = pd.DataFrame({"processor_speed_ghz":[2.0,3.0, 2.0, 5.0, 3.0, 3.0]})
print (laptops)
processor_speed_ghz
0 2.0
1 3.0
2 2.0
3 5.0
4 3.0
5 3.0
print(laptops["processor_speed_ghz"].value_counts())
3.0 3
2.0 2
5.0 1
Name: processor_speed_ghz, dtype: int64
print(laptops["processor_speed_ghz"].value_counts().index)
Float64Index([3.0, 2.0, 5.0], dtype='float64')
推荐阅读
- excel - 将当前搜索中的数据导出到 Laravel 中的 excel 中?
- csv - 如何使用 nifi 更新 csv 上特定字段的值?
- c++ - 如何从 sh 脚本中获取`wget`的返回值到`int`变量中
- eclipse - 由于 NoClassDefFoundError:TestEngine,Junit 5 测试无法在 Eclipse 中启动
- objective-c - 为什么在图标上实现的徽章不清晰可见。我想在图标上清楚地显示徽章并在图标上显示徽章计数
- xamarin.forms - 是什么导致选项卡式页面 XAML 文件的 Xamarin 表单中的 android 预览错误?
- karma-jasmine - 如何在 Angular 的茉莉花单元测试中模拟 translateservice
- python - 在键值迭代中从 json 中删除引号
- java - Docker 日志挂载文件夹未同步
- java - ClientAbortException:java.net.SocketException:jboss 服务器上间歇性地出现连接重置错误