gpt4 book ai didi

python - 类型检查 Pandas DataFrames

转载 作者:太空狗 更新时间:2023-10-30 01:26:25 25 4
gpt4 key购买 nike

我想对 Pandas DataFrame 进行类型检查,即我想指定 DataFrame 必须具有哪些列标签以及其中存储了哪种数据类型 (dtype)。粗略的实现(受此 question 启发)会像这样工作:

from collections import namedtuple
Col = namedtuple('Col', 'label, type')

def dataframe_check(*specification):
def check_accepts(f):
assert len(specification) <= f.__code__.co_argcount
def new_f(*args, **kwds):
for (df, specs) in zip(args, specification):
spec_columns = [spec.label for spec in specs]
assert (df.columns == spec_columns).all(), \
'Columns dont match specs {}'.format(spec_columns)

spec_dtypes = [spec.type for spec in specs]
assert (df.dtypes == spec_dtypes).all(), \
'Dtypes dont match specs {}'.format(spec_dtypes)
return f(*args, **kwds)
new_f.__name__ = f.__name__
return new_f
return check_accepts

我不介意检查功能的复杂性,但它增加了很多样板代码。

@dataframe_check([Col('a', int), Col('b', int)],    #  df1
[Col('a', int), Col('b', float)],) # df2
def f(df1, df2):
return df1 + df2

f(df, df)

是否有更 Pythonic 的 DataFrame 类型检查方法?看起来更像 the new Python 3.6 static type-checking 的东西?

是否可以在mypy中实现?

最佳答案

尝试 pandera

A data validation library for scientists, engineers, and analysts seeking correctness.

关于python - 类型检查 Pandas DataFrames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46412821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com