相当具体的数据框架查询

#=================================================================================
# Building the dataframe (No Problems Here)
#=================================================================================  
plhIndex = pd.DataFrame(columns=['fullPath', 'folderName', 'fileName', 'modifiedDate'])
for root, dirs, files in os.walk(processHistoryPath):
    for file in files:
        plhIndex = plhIndex.append({'fullPath' : os.path.join(root, file), \
                                    'folderName' : os.path.basename(root), \
                                    'fileName' : file, \
                                    'modifiedDate' : os.path.getmtime(os.path.join(root, file))}, ignore_index=True)

我需要的是一个从 plhIndex 中返回’fullPath’和’FolderName’的函数。

A) 文件名与我提供的变量相匹配。

B) modifiedDate与我提供的函数中的日期最接近(均为时间戳格式)

类似于:return min(plhIndex , key=lambda x:abs(date-modifiedDateColumn))但序列号匹配的地方。

衷心感谢大家的帮助!

解决方案:

獨立調查組。

def get_closest(fn, date, df):
    d = pd.DataFrame({'fileName': [fn], 'modifiedDate': [date]})
    a = pd.merge_asof(d, df, on='modifiedDate', by='fileName', direction='nearest')
    return a.loc[0, ['fullPath', 'folderName']].to_dict()

这样叫吧。

get_closest('myfilename', some_date, plhIndex)

给TA打赏
共{{data.count}}人
人已打赏
解决方案

在C语言中实现构造函数的正确方法

2022-4-20 5:00:09

解决方案

如何同时合并两个列表?

2022-4-20 5:00:11

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索