Как найти в панде датафрейм минимальный возраст файлов в одной папке + возраст папки? - PullRequest
0 голосов
/ 10 ноября 2019

Может быть, кто-то захочет разобраться в этом. Я изо всех сил пытаюсь - получить данные из строки, которая удовлетворяет условию - определить минимум раздела кадра данных

У меня есть кадр данных с этим (см. Рисунок, 1 строка для папки, 3 строки для файлов) введите описание изображения здесь

data = pd.DataFrame({'path': ['D:\Business Intelligence\01 General', 'D:\Business Intelligence\01 General\2_AI in FCM_Board_Meeting_Oct17.pptx', 'D:\Business Intelligence\01 General\FAURECIA_GRAPHIC_STANDARDS2_2017.pdf', 'D:\Business Intelligence\01 General\IA_EV_Vsent.pptx'], 
                     'mtime': ['2019-08-21 08:35:49', '2015-10-06 15:04:12', '2016-10-12 13:49:31', '2014-10-12 13:49:31'], 
                   'folder': ['True', 'False', 'False', 'False']})

Я хочу получить возраст родительской папки и самого младшего файла в той же папке. Что я сделал до сих пор:

0: убедитесь, что я сравниваю правильные строки

def string2RawString(string):
    rawString = ''
    for i in string.split('\\'):
        rawString = rawString+("%r"%i).strip("'")+"\\"
    return rawString

1: возраст папки / файла, который я могу получить:

def calculate_age(ageFile):
    ageFile = datetime.strptime(ageFile, '%Y-%m-%d %H:%M:%S').date()
    today = date.today()
    return today - ageFile

2: идентификация папки, с которой я начал:

def ageMainPath(path):
    path = string2RawString(path)
    mainPath = "\\".join(path.split('\\')[:-2])  
#   logic concept
#         find main folder and get column of mtime
    return ageMainPath

3: идентификация самого младшего файла, с которым я полностью борюсь:

def ageYoungestFile(path):
    path = string2RawString(path)
#     logic concept
#         find all files in same folder (not sub-folder, only same level)
#         find youngest file age

3: я начинаю процесс, так какМеня интересует только информация о файле

data.loc[data.folder == 'False', 'folder age'] = data['path'].apply(ageMainPath)
data.loc[data.folder == 'False', 'youngest file'] = data['path'].apply(ageYoungestFile)
...