Python 为什么pandas和R之间的数据帧内存使用有如此大的差异?
我正在处理来自的数据(使用“Exporteer”按钮下载CSV文件) 当我使用Python 为什么pandas和R之间的数据帧内存使用有如此大的差异?,python,r,pandas,dataframe,memory,Python,R,Pandas,Dataframe,Memory,我正在处理来自的数据(使用“Exporteer”按钮下载CSV文件) 当我使用read.csv()将数据导入R时,需要3.75 GB内存,但当我使用pd.read\u csv()将数据导入pandas时,需要6.6 GB内存 为什么差异如此之大 我使用以下代码来确定R中数据帧的内存使用情况: library(pryr) object_size(df) 和python: df.info(memory_usage="deep") 我发现该链接非常有用,并认为值得从评论和总结
read.csv()
将数据导入R时,需要3.75 GB内存,但当我使用pd.read\u csv()
将数据导入pandas时,需要6.6 GB内存
为什么差异如此之大
我使用以下代码来确定R中数据帧的内存使用情况:
library(pryr)
object_size(df)
和python:
df.info(memory_usage="deep")
我发现该链接非常有用,并认为值得从评论和总结中突破:
usecols
df=pd.read\u csv('voctors.csv',usecols=['First Name','Last Name']))
:(默认)-9223372036854775808到9223372036854775807int64
:-32768到32767int16
:-128到127int8
df=pd.read\u csv('voctors.csv',dtype={'Ward Number':'int8})
category
df=pd.read\u csv('voctors.csv',dtype={'Party Affiliation':'category'})
nan
数据转换为数据类型Sparse
sparse\u str\u series=series.astype('sparse[str]”)
稀疏\u int16\u series=series.astype('sparse[int16]”)
Pandas使用固定的数据类型来加载可能比R中使用的存储空间大的数据。read_csv中有一些参数可以大大减少内存使用量。对数字使用不同的数据类型。Int8、int16和int64是很好的例子,我同意保罗的观点。这可能是探索如何减少Python中数据集大小的一个很好的起点。请参阅这篇文章,深入探讨R中的内存管理。谢谢!通过指定数据类型,我成功地将pandas的大小减少到了3.6GB,这带来了巨大的不同。