简单实用的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 列的存储方式。 (编辑:开发网_开封站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |