数据分析入门与数据子集选择
1. 数据类型与内存使用
在数据分析中,不同的数据类型对内存的使用有显著影响。为了更好地理解对象数据类型列与整数和浮点数列的差异,可以修改这些列中的单个值,并显示由此产生的内存使用情况。
例如, CURROPER 列是 int64 类型, INSTNM 列是 object 类型:
college.loc[0, 'CURROPER'] = 10000000
college.loc[0, 'INSTNM'] = college.loc[0, 'INSTNM'] + 'a'
print(college[['CURROPER', 'INSTNM']].memory_usage(deep=True))
结果显示, CURROPER 的内存使用保持不变,因为 64 位整数足以容纳更大的数字。而 INSTNM 的内存使用仅通过在一个值上添加一个字母就增加了 105 字节。这是因为 Python 3 使用 Unicode 编码,每个字符最多使用 4 字节,并且 pandas 在首次修改字符值时似乎有一些开销(100 字节),之后每个字符增加 5 字节。
并非所有列都可以强制转换为所需的类型。比如 MENONLY 列,从数据字典来看它似乎只包含 0/1 值,但导入时实际数据类型却是 float64 。这是因为存在缺失
超级会员免费看
订阅专栏 解锁全文
1704

被折叠的 条评论
为什么被折叠?



