У меня есть Dataframe
для хранения различных типов столбцов, float / int / object .
Поскольку Dataset
слишком велик, я ищу способы уменьшить объем памятиИспользование.
Я обнаружил, что "Categorical"
может быть использовано для уменьшения использования памяти для столбцов типа "Object"
, и я применил это к ним.Но как только я, изменить столбец со значением списка, ошибка "TypeError: unhashable type: 'list'"
Вот мой фрейм данных
vs_df = pd.DataFrame({'plan_name': ['abc', 'def'], 'plan_id': [10001, 10002]})
vs_df['handled_plans_id'] = np.empty((len(vs_df), 0)).tolist()
vs_df.at[[0, 1], 'handled_plans_id'] = [[105,120], []]
vs_df.handled_plans_id = vs_df.handled_plans_id.astype('category') # Error here
print(vs_df)
plan_id plan_name handled_plans_id
0 10001 abc [105, 120]
1 10002 def []
Ошибка:
TypeError: unhashable type: 'list'
File "pandas\_libs\hashtable_class_helper.pxi", line 1367, in pandas._libs.hashtable.PyObjectHashTable.get_labels
Любые методы, решающие это илиУменьшите размер этого столбца с помощью списка значений.Спасибо!
Обновление
Множество значений внутри столбца handled_plans_id
различны.Хотелось бы увидеть какие-либо методы для уменьшения использования памяти в этом столбце.