首页 > 解决方案 > 在 Python 中将图像分配给 pandas 数据框的元素

问题描述

我有一个熊猫数据框,其中一列是图像(numpy 数组格式的单通道 uint8 2d 图像)。我正在使用 iterrows() 遍历行,并处理图像,我想将结果(其他图像,格式相同)分配给数据框其他列的元素。我有一个图片专栏。

for index,row in df.iterrows():
    image=df['image']
    processed=process_image(image)
    df.loc[index,'processed_image']=processed

但是,当我尝试使用 .loc 或 .at(或 .iloc、.iat)时,会遇到这样的错误(对于 .loc 和 .at):

ValueError:无法使用长度与值不同的多索引选择索引器进行设置 ValueError:设置具有序列的数组元素。

可能 loc 和 at 期望单个值,他们期望数组用于填充 pandas 数据帧的多个索引。但我不希望这样,我希望数组作为单个元素。

我在互联网的其他地方找不到确切的 questino。我发现的最接近的是已经手动使用数组元素初始化数据框,而不是在 iterrows 中分配。

有谁知道怎么解决?提前致谢。

标签: pythonpandasdataframe

解决方案


尝试通过以下方法添加一个新列作为现有列的函数,.apply()例如

df['new_col'] = df.apply(lambda row: ..., axis=1)

推荐阅读