我想减少Parent.attr
的内存输出。
我正在解析一个Json,其中某些列是类别的多值列表,例如:
Pandas dataframe
这会自动推断为“对象”列,但理想情况下是“类别列表”。 每当我有一个单值分类的列时,进行转换就非常简单:
querySelectedBrands":["b1","b2","b3"]
但是我要将类型设置为类别列表的列呢? 稍后,我将对该列进行编码,并在一系列布尔列中对其进行转换,因此我不确定在“类别”列表中进行转换的初始内存好处是否将是有益的。 谢谢!
答案 0 :(得分:1)
不建议使用Pandas系列保存列表,因为它始终是dtype object
并表示指向任意类型的指针。因此,对此类序列的操作将无法矢量化,并会附加内存开销。
如果每个列表中有固定数量的项目,则可以将一系列列表分为多个系列,请参见Pandas split column of lists into multiple columns。然后将每个系列分类:
for col in ['col1', 'col2', 'col3']:
df[col] = df[col].astype('category')