从.csv fi创建标签时出现问题

2024-04-24 04:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用jupyter笔记本做一个人脸检测模型,在尝试用文件名和标签写一个.csv文件时遇到了一些困难。你知道吗

以下是我使用的函数:

##Attaching label to correct file names

item_list = glob.glob('data/dest/celeba/faces/*/*.jpg'.  )

item_df = pd.DataFrame({'image_name':pd.Series(item_list).apply(lambda x: '/'.join(x.split('/')[-2]))})

istem_df['image_id'] = item_df.image_name.apply(lambda x: x.split('/')[1])


## Creating final label set


label_df = pd.read_csv('data/dest/celeba/labels.csv')

label_df = label_df.merge(item_df, on='image_id', how='inner')

label_df.rename(columns={'label':'tags'}, inplace=True)

label_df.loc[:,['image_name','tags']].to_csv('data/dest/celeba/labels1.csv', index=False)

“所以”标签.csv“我想应该是这样的。文件开头有几行:

,image_id,label
0,000001.jpg,Arched_Eyebrows Attractive Brown_Hair Heavy_Makeup High_Cheekbones Mouth_Slightly_Open No_Beard Pointy_Nose Smiling Straight_Hair Wearing_Earrings Wearing_Lipstick Young
1,000002.jpg,Bags_Under_Eyes Big_Nose Brown_Hair High_Cheekbones Mouth_Slightly_Open No_Beard Smiling Young

这应该用“标签”再写一遍。但是labels1.csv如下所示:

image_name,tags

否则它是空的。当我调用print(data.c,'\n',data.classes)时,它会打印0 []。你知道吗

有人能帮我解释一下我做错了什么吗?你知道吗

编辑。我把这个编辑到这里是为了避免聊天。因此,我根据收到的帮助编辑了代码,现在是这样的:

## Attachhing label to correct file names
item_list = glob.glob('data/dest/celeba/faces/*/*.jpg')
item_df = pd.DataFrame({'image_name':pd.Series(item_list).apply(lambda x: '/'.join(x.split('/')[-2]))})
item_df['image_id'] = item_df.image_name.apply(lambda x: x.split('/')[1])

## Creating final label set
label_df = pd.read_csv('data/dest/celeba/labels.csv')
label_df = label_df.merge(item_df, left_on='image_id', right_on='image_id')
label_df.rename(columns={'label':'tags'}, inplace=True)
label_df.loc[:,['image_name','tags']].to_csv('data/dest/celeba/faces/labels.csv', index=False)

这仍然会给我一个空的“labels1.csv”文件,只有标题:image_name,tags。你知道吗


Tags: csvtonameimageiddfdatatags
1条回答
网友
1楼 · 发布于 2024-04-24 04:16:18

你是使用.loc方法仅从行ID获取['image\u name','tags']。 更改此部分:

label_df.loc[:,['image_name','tags']].to_csv('data/dest/celeba/labels1.csv', index=False)

有了这个:

header = ["image_id", "tags"]
label_df.to_csv('data/dest/celeba/labels1.csv', columns = header, index=False)

相关问题 更多 >