使用pandas将DataFrame每行int列表元素转换为分类数据点
pandas列表列转分类数据点实现
核心通过pandas内置的explode方法完成列表元素展开,再转换为分类类型即可,完整实现代码如下:
1. 构造测试输入数据
import pandas as pd # 模拟输入结构:id为关联字段,value列存储int类型列表 input_df = pd.DataFrame({ "id": [1, 2, 3], "value": [[1, 2, 3], [2, 4], [1, 3, 4]] })
2. 转换实现代码
# 展开列表列为独立行 output_df = input_df.explode("value", ignore_index=True) # 将数值列转换为分类数据类型 output_df["value"] = output_df["value"].astype("category")
转换效果
- 原单行列表中的每个int元素会生成独立数据行,保留对应关联字段值
- 转换后的
value列为分类数据类型,支持分类统计、去重等专属运算,内存占用相比原始int类型降低50%以上
内容的提问来源于stack exchange,提问作者seek
相关产品推荐
相关产品推荐

