pandas 为什么as type('category ')在我的数据框中不节省内存?

vs3odd8k  于 2022-12-21  发布在  Go
关注(0)|答案(1)|浏览(97)

我有一个数据框,其中有一列字符串,我想使用'category'进行优化。我显然做错了什么,因为我认为内存使用量远远低于使用category而不是string。

In [28]: df1.memory_usage()
Out[28]: 
Index          15218784
DATE_CALCUL    15218784
ABN_CONTRAT    15218784
MONTANT_HT     15218784
dtype: int64

In [29]: df1['ABN_CONTRAT'].astype('category').memory_usage()
Out[29]: 28190544

你知道为什么吗?

njthzxwz

njthzxwz1#

感谢AKX的评论,我回答了这个问题。使用分类确实可以保存内存使用:

In [10]: df.memory_usage()
Out[10]: 
Index               128
DATE_CALCUL    15490152
ABN_CONTRAT    15490152
MONTANT_HT     15490152
dtype: int64

In [11]: df['ABN_CONTRAT_CAT'] = df['ABN_CONTRAT'].astype('category')

In [12]: df.memory_usage()
Out[12]: 
Index                   128
DATE_CALCUL        15490152
ABN_CONTRAT        15490152
MONTANT_HT         15490152
ABN_CONTRAT_CAT    13107444
dtype: int64

相关问题