Функция принимает фрейм данных.
Довольно просто, я ожидаю, что приведенный ниже код изменит тип данных столбца с плавающей точкой на int (работает)
и «категория», если уникальные значения составляют менее 2% от размера объекта Series (не работает)
У меня есть фрейм данных 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")