如何将Python数组每行存储为pandas DataFrame单列条目应用于多标签分类任务
解决方案
你可以通过以下两种方式实现需求,核心逻辑是把二维数组的每一行提前封装为单个元素再传入DataFrame,避免pandas自动拆分维度:
- 通用写法(兼容列表、numpy数组类型的
multilabel)
import pandas as pd df = pd.DataFrame({ "target": [row for row in multilabel] })
- 若
multilabel是numpy数组,可直接用tolist()方法简化代码
import pandas as pd import numpy as np # 示例multilabel数组 multilabel = np.array([ [0, 0, 0, 1, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 1, 0, 0, 0, 0] ]) df = pd.DataFrame({ "target": multilabel.tolist() })
原错误写法的原因
直接把二维数组传入pd.DataFrame()时,pandas会默认把二维数组的第二个维度映射为表格列,因此每个数组元素会被拆分为单独的列。手动将每行封装为列表的单个元素后,pandas会将每个列表识别为单个单元格的值,不会做额外拆分。
内容的提问来源于stack exchange,提问作者soulwreckedyouth
相关产品推荐
相关产品推荐

