gpt4 book ai didi

python - 为什么 Pandas 和 R 之间数据帧的内存使用量有如此大的差异?

转载 作者:行者123 更新时间:2023-12-04 01:05:23 25 4
gpt4 key购买 nike

我正在处理来自 https://opendata.rdw.nl/Voertuigen/Open-Data-RDW-Gekentekende_voertuigen_brandstof/8ys7-d773 的数据(使用“导出器”按钮下载 CSV 文件)。
当我使用 read.csv() 将数据导入 R 时它需要 3.75 GB 的内存,但是当我使用 pd.read_csv() 将它导入到 Pandas 中时它占用 6.6 GB 的内存。
为什么这个差别这么大?
我使用以下代码来确定 R 中数据帧的内存使用情况:

library(pryr) 
object_size(df)
和 python :
df.info(memory_usage="deep")

最佳答案

我发现该链接非常有用,并认为值得从评论和总结中脱颖而出:
Reducing Pandas memory usage #1: lossless compression

  • 仅加载感兴趣的列 usecols
    df = pd.read_csv('voters.csv', usecols=['First Name', 'Last Name'])
  • 使用较小的 dtype 缩小数字列
  • int64 : (默认) -9223372036854775808 至 9223372036854775807
  • int16 :-32768 到 32767
  • int8 :-128 到 127

  • df = pd.read_csv('voters.csv', dtype={'Ward Number': 'int8'})
  • 使用 dtype category 收缩分类数据
    df = pd.read_csv('voters.csv', dtype={'Party Affiliation': 'category'})
  • 大部分转换 nan数据到 dtype Sparse
    sparse_str_series = series.astype('Sparse[str]')
    sparse_int16_series = series.astype('Sparse[int16]')
  • 关于python - 为什么 Pandas 和 R 之间数据帧的内存使用量有如此大的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66670471/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com