向数据框添加新列,并向每一行添加唯一值

时间:2019-08-05 03:01:52

标签: python python-3.x pandas dataframe

我有一个包含两列的数据框:id_code和诊断

我有一个文件夹,其图像文件名与id_code相同。我想向数据框中添加新列:图像,高度和宽度

我有以下代码:

for idx, row in df_train.iterrows():
    img = Image.open('train_images/{}.png'.format(row['id_code']))
    height, width = img.size
    row['image'] = img
    row['height'] = height
    row['width'] = width

在其余的代码行中,我尝试使用df_train.iloc[idx]['image'] = img而不是row['image'] = img,依此类推,但这会给我一个错误。

但是此代码更新行,但不更新数据框本身。

1 个答案:

答案 0 :(得分:2)

我们应该按单元格为其分配

l=[]
for idx, row in df_train.iterrows():
    img = Image.open('train_images/{}.png'.format(row['id_code']))
    l.append(img)
    height, width = img.size
    df.loc[idx,'height'] = height
    df.loc[idx,'width'] = width

df['img']=l