You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Sparse类型的DataFrame取消稀疏格式转换为常规int类型

去稀疏化转换方法

失效原因说明

直接使用.astype(int)仅会修改稀疏结构内部存储值的数据类型,不会取消稀疏属性,因此无法得到常规int类型的列。

可用实现方案

  • 针对单个稀疏列转换:
    使用pandas稀疏列内置的sparse.to_dense()方法将稀疏结构展开为稠密数组,即可得到常规int类型:
# 假设目标列名为col
df['col'] = df['col'].sparse.to_dense()

# 若需要强校验int类型,可在后面追加astype声明
df['col'] = df['col'].sparse.to_dense().astype(int)
  • 针对DataFrame所有稀疏列批量转换:
    遍历判断列类型,统一处理所有稀疏列:
import pandas as pd

for col in df.columns:
    # 判断当前列是否为稀疏类型
    if pd.api.types.is_sparse_dtype(df[col]):
        df[col] = df[col].sparse.to_dense()

操作完成后可通过df['col'].dtype查看类型,已转换为常规int/int64类型。

内容的提问来源于stack exchange,提问作者gtomer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:21:01