加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 云计算 > 正文

简单实用的pandas方法:如何将内存占用降低90%

发布时间:2022-07-16 14:02:23 所属栏目:云计算 来源:互联网
导读:当使用 pandas 操作小规模数据(低于 100 MB)时,性能一般不是问题。而当面对更大规模的数据(100 MB 到数 GB)时,性能问题会让运行时间变得更漫长,而且会因为内存不足导致运行完全失败。 简单实用的pandas技巧:如何将内存占用降低90% 处理棒球比赛日志
  当使用 pandas 操作小规模数据(低于 100 MB)时,性能一般不是问题。而当面对更大规模的数据(100 MB 到数 GB)时,性能问题会让运行时间变得更漫长,而且会因为内存不足导致运行完全失败。
 
  简单实用的pandas技巧:如何将内存占用降低90%
 
  处理棒球比赛日志
 
  我们将处理 130 年之久的美国职业棒球大联盟(MLB)比赛数据,这些数据来自 Retrosheet:http://www.retrosheet.org/gamelogs/index.html。
 
  这些数据原来分成了 127 个不同的 CSV 文件,但我们已经使用 csvkit 合并了这些数据,并在第一行增加了列名称。如果你想下载本文所用的这个数据版本,请访问:https://data.world/dataquest/mlb-game-logs。
 
  让我们首先导入数据,并看看其中的前五行:
 
  简单实用的pandas技巧:如何将内存占用降低90%
 
  下面我们总结了一些重要的列,但如果你想了解所有的列,我们也为整个数据集创建了一个数据词典:https://data.world/dataquest/mlb-game-logs/workspace/data-dictionary。
 
  date - 比赛时间
  v_name - 客队名
  v_league - 客队联盟
  h_name - 主队名
  h_league - 主队联盟
  v_score - 客队得分
  h_score - 主队得分
  v_line_score - 客队每局得分排列,例如:010000(10)00.
  h_line_score - 主队每局得分排列,例如:010000(10)0X.
  park_id - 比赛举办的球场名
  attendance- 比赛观众
  我们可以使用 DataFrame.info() 方法为我们提供关于 dataframe 的高层面信息,包括它的大小、数据类型的信息和内存使用情况。
 
  默认情况下,pandas 会近似 dataframe 的内存用量以节省时间。因为我们也关心准确度,所以我们将 memory_usage 参数设置为 'deep',以便得到准确的数字。
 
  简单实用的pandas技巧:如何将内存占用降低90%
 
  dataframe 的内部表示
 
  在 pandas 内部,同样数据类型的列会组织成同一个值块(blocks of values)。这里给出了一个示例,说明了 pandas 对我们的 dataframe 的前 12 列的存储方式。
 
 

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读