首页 > 解决方案 > 为什么我的 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")

标签: pythonpandasfunction

解决方案


推荐阅读