qq_42462152 2019-11-16 12:42 采纳率: 0%
浏览 673

请问如何解决使用PYTHON PIVOT时内存不足的问题?

要统计整理每个月的销售信息,把他们汇总在一起。
代码如下
'''
import pandas as pd
import openpyxl

f=pd.DataFrame(pd.read_csv('201901.csv',header=0))
r=pd.pivot_table(f,index=["型号","颜色","工厂","实体店"],values=["条码"],aggfunc='count')
r.rename(columns={'条码':'1月'}, inplace = True)

f2=pd.DataFrame(pd.read_csv('201902.csv',header=0))
r2=pd.pivot_table(f2,index=["型号","颜色","工厂","实体店"],values=["条码"],aggfunc='count')
r2.rename(columns={'条码':'2月'}, inplace = True)

f3=pd.DataFrame(pd.read_csv('201902.csv',header=0))
r3=pd.pivot_table(f,index=["型号","颜色","工厂","实体店"],values=["条码"],aggfunc='count')
r3.rename(columns={'条码':'3月'}, inplace = True)
res=pd.concat([r,r2,r3], axis=1)'''
writer =pd.ExcelWriter('结果.xlsx')
r.to_excel(writer,'1')
writer.save()

因为数据文件太大,运行时提示
MemoryError: Unable to allocate array with shape (1408618,) and data type object

请问大佬如何优化我的垃圾代码

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-11-16 14:07
    关注

    内存太小了,去taobao买一个垃圾成色的双路x58,有12个内存插槽的(200元左右,送你2个亮机的CPU,比如E5620之类的)+12条DDRIII 8GB内存,一共96GB,每条20元,一共240元。如果你钱多,上192GB内存也可以。
    这样你花不到1天的工钱,就买来足够运行比你程序要求多很多的内存。
    而捣鼓你的破程序毫无价值。

    评论

报告相同问题?

悬赏问题

  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用