首页 > 解决方案 > 熊猫数据框的静态类型/模式

问题描述

有没有办法“静态地”提示 Pandas DataFrame 的模式,以便我们可以在编码期间获得代码完成、静态类型检查以及一般可预测性?

我不介意在代码和类型注释中复制模式信息以使其正常工作..

所以可能大致类似于 mypy 注释类型注释:

df = pd.DataFrame({'a': [1.0, 2.4, 4.5], 'B': [1,2,3]})  # pd.schema: ('a': np.dtype(float)), ('B': np.dtype(int))

(或者更好的是在一些外部 JSON 文件等中指定模式)

然后,您可以将编码过程中df.的自动完成等图像转换为或. 或者 mypy (和任何其他静态代码分析器)能够推断出等等的类型。df.adf.Bdf.B[0]

尽管充满希望,但我猜这实际上是不可能的(或不希望的……)。如果是这样,编写返回pd.DataFrame具有特定列的 's 的良好可重用代码的良好标准是什么?想象一下,有一个函数get_data() -> pd.DataFrame返回预先知道的列的数据——你如何使这个函数对这个函数的用户透明?有什么比在函数的文档字符串中拼写更智能/更标准化的吗?

标签: pythonpandas

解决方案


pandera应该是你需要的。

为寻求正确性的科学家、工程师和分析师提供的数据验证库。


推荐阅读