该函数采用一个数据框。 很简单,我希望下面的代码将float列的数据类型更改为int(有效) 如果唯一值小于Series对象的大小的2%(不起作用),则为“类别”
我有一个数据框df,其中的“位置”列只有4个唯一值,因此此列应为“类别”数据类型,但应为“对象”。
所以我执行了memoryHandler(df),但是在该列仍将“对象”作为数据类型之后,为什么?
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")