我有一个数据框
ClientId Scrips Scrips_viewed
0 A123 Ibank 5
1 B234 SteelCorp 10
2 B234 KTTelecom 8
3 A123 JKFlights 5
4 A123 BPharma 3
我试图用数据透视表中的所有唯一的脚本和索引列中的所有客户端ID以及相应列中的视图来做数据透视表。
data.shape是741206行×3列
df_matrix = pd.pivot_table(data, values='Scrips_viewed', index='ClientId', columns='Scrips')
但是我的PC挂起了,我必须重新启动它。
我的独家股票数量为4200,即。 4200栏,我的唯一客户是85,000。 我的公羊是16 GB
我的错误是
else:
1231 # Note that no copy of zero-sized arrays is made. However since they
MemoryError:
Memory_usage(deep = True)
Index 80
ClientId 11354188
Scrips 1921078
Scrips_viewed 5929648
dtype: int64
答案 0 :(得分:1)
您可以通过将字符串列转换为categoricals来减少数据帧占用的内存。
data[["ClientId", "Scrips"]] = data[["ClientId", "Scrips"]].astype('category')
然后尝试旋转。