如何在pandas dataframe中找到同一文件夹中的文件的最小年限+文件夹年限?

2024-09-30 01:28:24 发布

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

也许有人愿意调查这件事。我很难做到这一点 -从满足条件的行中获取数据 -确定数据帧的最小部分

我有一个数据框(见图,1行表示文件夹,3行表示文件) enter image description here

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)

Tags: 文件pathin文件夹falsedatareturndef

热门问题