首页 > 解决方案 > 如何在 Pandas 中将带有数字列表的列转换为 np.array 格式

问题描述

如何在熊猫数据框中将列的所有行转换为 numpy 数组格式?示例数据框: 在此处输入图像描述

df=pd.DataFrame({
        "actual":["1,0,0,1","0,0,1,0"],
        "predicted":["[1,0,0,0]","[0,1,1,1]"]
    })

理想数据框:

在此处输入图像描述

我尝试actual使用下面的代码将列转换为数组格式,但失败了。

df['actual']=df.actual(lambda x: np.array([int(s) for s in x.to_numpy().split(',')]))

在此处输入图像描述

标签: pythonpandasnumpy

解决方案


错误的出现是因为df.actual(您调用了列本身,例如df['actual'](,您可以使用Series.apply并且to_numpy不存在于str

df['actual'] = df.actual.apply(lambda x: np.array([int(s) for s in x.split(',')]))

         actual  predicted
0  [1, 0, 0, 1]  [1,0,0,0]
1  [0, 0, 1, 0]  [0,1,1,1]

推荐阅读