根据forloop中不同函数调用返回的值构建数据帧



我有5个不同的函数,它们给我不同的输出。这些功能是在保存在本地系统文件夹中的映像上运行的。我想把这些图像的输出整齐地写进一个数据帧中。我该如何做到这一点,或者有更好的方法将其转换为表格格式吗?我稍后需要导出此。

def main():
photo='Test.jpg'
for photos in os.listdir():
label=detect_labels(photos)
faces = detect_faces(photos)
text = detect_text(photos)
celebrity=recognize_celebrities(photos)
moderation = moderate_image(photos)

输出应该是这样的,其中列名是作为标题的[FileName,Labels,Faces,Text,Celebrity,Moderation]。然后在接下来的行中,我将得到函数返回的相应值。

为文件夹中的所有照片创建一个列表列表,然后在循环完成后,通过创建一个新列表将该列表添加到数据帧中。这将逐行追加值。

def main():
photo='Test.jpg'
for photos in os.listdir():
label=detect_labels(photos)
faces = detect_faces(photos)
text = detect_text(photos)
celebrity=recognize_celebrities(photos)
moderation = moderate_image(photos)
full_list.append([photos,label,faces,text,celebrity,moderation])
df = pd.DataFrame(full_list, columns = ['FileName','Labels','Faces','Text','Celebrity','Moderation'])

创建一个空列表。为每张照片创建一个指定格式的临时数据帧。使用pd.contat((将该列表中的所有临时数据帧组合为一个数据帧。

import pandas as pd
def main():
photo='Test.jpg'
lst_collect = []
for photos in os.listdir():
df_photo = pd.DataFrame()
df_photo["label"] = detect_labels(photos)
df_photo["faces"] = detect_faces(photos)
lst_collect.append(df_photo)
df_return = pd.concat(lst_collect)
return df_return

最新更新