通过装饰器断言 pandas 数据框具有日期时间索引

use*_*827 4 python decorator pandas datetimeindex

如何添加一个装饰器,声明函数传入的 pandas 数据帧参数具有日期时间索引?

我查看了 engarde 和 validada 包,但还没有找到任何东西。我可以在函数内部进行此检查,但更喜欢装饰器。

Ami*_*ory 5

正如 @PadraicCunningham 所写,使用以下命令创建一个并不太难functools.wraps

import functools

def assert_index_datetime(f):
    @functools.wraps(f)
    def wrapper(df):
        assert df.index.dtype == pd.to_datetime(['2013']).dtype
        return f(df)
    return wrapper

@assert_index_datetime
def fn(df):
    pass

df = pd.DataFrame({'a': [1]}, index=pd.to_datetime(['2013']))
fn(df)
Run Code Online (Sandbox Code Playgroud)