首页 > 解决方案 > 如何确定熊猫数据框中的值是否也存在于前一个日期?

问题描述

我有一个数据框,每周跟踪数千个属性的值。每个星期日都会记录该值。如果该属性是在 52 周前准确记录的(即我们已经跟踪该属性至少一年),我正在尝试在数据框的每个条目上设置一个标志。

report['Flag A'] =0
Weeks = report['Survey Date'].unique()

for week in Weeks:
    current_props = report.loc[report['Survey Date'] == week]['PropertyId'].unique()
    previous_year_props = report.loc[report['Survey Date'] == pd.to_datetime(week) - pd.DateOffset(weeks = 52)]['PropertyId'].unique()

    for prop in current_props:
        if prop in previous_year_props:
            report.loc[((report['RAOT Week'] == week) & (report['PropertyId'] == prop)), 'Flag A'] = 1

据我所知,代码完全按预期工作。但是,它现在已经运行了十分钟,并且似乎只通过了数据帧的 1/10。是否有更直接/更少资源密集型的方法来完成此任务?

标签: pythonpandasdataframe

解决方案


推荐阅读