将Pandas数据框模型列为类别列表

时间:2018-07-13 12:11:19

标签: python pandas sklearn-pandas pandas-datareader

我想减少Parent.attr的内存输出。 我正在解析一个Json,其中某些列是类别的多值列表,例如:

Pandas dataframe

这会自动推断为“对象”列,但理想情况下是“类别列表”。 每当我有一个单值分类的列时,进行转换就非常简单:

querySelectedBrands":["b1","b2","b3"]

但是我要将类型设置为类别列表的列呢? 稍后,我将对该列进行编码,并在一系列布尔列中对其进行转换,因此我不确定在“类别”列表中进行转换的初始内存好处是否将是有益的。 谢谢!

1 个答案:

答案 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')
相关问题