【问题标题】:Creat folder based on Dataframe in python在python中基于Dataframe创建文件夹
【发布时间】:2018-10-01 21:44:32
【问题描述】:

我有这个数据框。我想创建具有 ID 名称的文件夹,并且我想使用 python 将具有重复 ID 的图像放在路径“F:/Images/”中的一个文件夹中。

input:
              Image          Id
        0     00022e1a.jpg  w_e
        1     000466c4.jpg  w_1
        2     00087b01.jpg  w_e
        3     001296d5.jpg  w_1
        4     0014cfdf.jpg  w_2
        5     0025e8c2.jpg  w_3
        6     0026a8ab.jpg  w_1
    output:
        Folder w_e: 00022e1a.jpg,  00087b01.jpg
        Folder w_1: 000466c4.jpg, 000466c4.jpg,  0026a8ab.jpg
        Folder w_2:0014cfdf.jpg 
        Folder w_3:0025e8c2.jpg

【问题讨论】:

  • 如果我的回答有帮助,请不要忘记accept 它 - 单击答案旁边的复选标记,将其从灰色切换为已填充。谢谢。

标签: python pandas dataframe directory


【解决方案1】:

我认为需要:

#create Series for unique index values of dirs and lists for file names 
s = df.groupby('Id')['Image'].apply(list)

import os, glob, shutil
#get all images from folder  
src_files = glob.glob('E:/Images/*.jpg')
#create dictionary for lookup values from DataFrame
lookup = {x.split('\\')[-1]:x for x in src_files}
print (lookup)

#loop by Series 
for directory, files in s.items():
    #first create folders
    path = os.path.join('E://Images//', directory)
    if not os.path.exists(path):
        os.makedirs(path)

    for file in files:
        #get path of each image, if not exist return None
        orig = lookup.get(file, None)
        #copy files from DataFrame
        if orig is not None:
            dest = os.path.join(path, file)
            shutil.copy(orig, dest)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多