在Pandas中为DataFrame赋值列时能否直接指定数据类型?
在Pandas中能否在为列赋值时直接设置数据类型?
当然可以,不用先赋值再修改类型,针对你的大型DataFrame内存优化需求,有几种直接在赋值时指定category类型的高效方法:
使用
DataFrame.assign()结合pd.Categorical()
这种方法可以一步完成列的添加与类型指定,避免中间生成object类型的列占用额外内存:df = df.assign(file=pd.Categorical(file))使用
DataFrame.insert()方法指定dtype
如果需要指定列插入的位置,insert方法支持直接声明dtype参数:# 示例:将file列插入到第0位 df.insert(loc=0, column='file', value=file, dtype='category')新建DataFrame时直接指定类型
若你是从无到有创建DataFrame,可在构造阶段就指定列的类型:# 方式1:通过dtype参数指定 df = pd.DataFrame({'file': file}, dtype={'file': 'category'}) # 方式2:直接传入Categorical类型的数据 df = pd.DataFrame({'file': pd.Categorical(file)})
这些方法都能直接将file列设为category类型,省去先存为object再转换的步骤,大幅降低内存占用,完美适配你的大型数据集场景。
内容的提问来源于stack exchange,提问作者LimaKilo
相关产品推荐
相关产品推荐

