python - 为什么我的 python 函数更改系列对象的数据类型不起作用?
问题描述
该函数采用数据框。非常简单,如果唯一值小于 Series 对象大小的 2%(不起作用),我希望下面的代码将 float 列的数据类型更改为 int(有效)并更改为“类别”
我有一个数据框 df,其中有一列“Position”只有 4 个唯一值,所以该列应该是“类别”数据类型,但是是“对象”。
所以我做了memoryHandler(df),但是在列之后仍然有“object”作为数据类型,为什么?
def memoryHandler(frame):
for column in frame:
if frame[column].dtype == float:
frame[column] = frame[column].astype("int")
if frame[column].nunique() < 0.02*frame[column].size:
frame[column] = frame[column].astype("category")
解决方案
推荐阅读
- xml - 解析 ChildNodes 的 ChildNodes
- r - 尝试部署闪亮的应用程序时出错
- c# - 如何设置获取;放; 来自另一个脚本的值
- c# - 我正在尝试将数据插入到对象的二维数组中
- r - R - 对每个学习者具有不同特征子集的超级学习者的建议?
- c# - 如何在列表中查找类对象
通过一个或多个类字段? - javascript - 用 puppeteer 写一个 csv 文件
- java - IllegalStateException:请考虑在值和/或键反序列化器中配置“ErrorHandlingDeserializer”
- python-3.x - Python requests.Session() 没有更新所有 cookie?
- javascript - Redux:useSelector 值未定义,尽管它出现在 devTools 中