pie*_*ons 4 python memory r dataframe pandas
我正在处理https://opendata.rdw.nl/Voertuigen/Open-Data-RDW-Gekentekende_voertuigen_brandstof/8ys7-d773中的数据(使用“Exporteer”按钮下载 CSV 文件)。
当我使用 R 将数据导入到 R 时,read.csv()它需要 3.75 GB 的内存,但是当我使用它将数据导入 pandas 时,pd.read_csv()它会占用 6.6 GB 的内存。
为什么这个差异这么大呢?
我使用以下代码来确定 R 中数据帧的内存使用情况:
library(pryr)
object_size(df)
Run Code Online (Sandbox Code Playgroud)
和蟒蛇:
df.info(memory_usage="deep")
Run Code Online (Sandbox Code Playgroud)
我发现该链接非常有用,并认为值得从评论中进行总结:
仅加载感兴趣的列usecols
df = pd.read_csv('voters.csv', usecols=['First Name', 'Last Name'])
Run Code Online (Sandbox Code Playgroud)
使用较小的数据类型缩小数字列
int64:(默认) -9223372036854775808 至 9223372036854775807int16:-32768 至 32767int8:-128 至 127df = pd.read_csv('voters.csv', dtype={'Ward Number': 'int8'})
Run Code Online (Sandbox Code Playgroud)
使用 dtype 缩小分类数据category
df = pd.read_csv('voters.csv', dtype={'Party Affiliation': 'category'})
Run Code Online (Sandbox Code Playgroud)
将大部分nan数据转换为 dtypeSparse
sparse_str_series = series.astype('Sparse[str]')
sparse_int16_series = series.astype('Sparse[int16]')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2461 次 |
| 最近记录: |