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

2024-09-26 18:13:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理来自https://opendata.rdw.nl/Voertuigen/Open-Data-RDW-Gekentekende_voertuigen_brandstof/8ys7-d773的数据(使用“Exporteer”按钮下载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")

Tags: csv数据内存httpsdfreaddatanl
1条回答
网友
1楼 · 发布于 2024-09-26 18:13:51

我发现该链接非常有用,并认为值得从评论和总结中突破:

Reducing Pandas memory usage #1: lossless compression

  1. 使用usecols仅加载感兴趣的列

    df = pd.read_csv('voters.csv', usecols=['First Name', 'Last Name'])
    
  2. 使用较小的数据类型收缩数字列

    • int64:(默认)-9223372036854775808到9223372036854775807
    • int16:-32768到32767
    • int8:-128到127
    df = pd.read_csv('voters.csv', dtype={'Ward Number': 'int8'})
    
  3. 使用数据类型category收缩分类数据

    df = pd.read_csv('voters.csv', dtype={'Party Affiliation': 'category'})
    
  4. 将大部分nan数据转换为数据类型Sparse

    sparse_str_series = series.astype('Sparse[str]')
    sparse_int16_series = series.astype('Sparse[int16]')
    

相关问题 更多 >

    热门问题