python - 熊猫数据框的静态类型/模式
问题描述
有没有办法“静态地”提示 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.a
df.B
df.B[0]
尽管充满希望,但我猜这实际上是不可能的(或不希望的……)。如果是这样,编写返回pd.DataFrame
具有特定列的 's 的良好可重用代码的良好标准是什么?想象一下,有一个函数get_data() -> pd.DataFrame
返回预先知道的列的数据——你如何使这个函数对这个函数的用户透明?有什么比在函数的文档字符串中拼写更智能/更标准化的吗?
解决方案
pandera应该是你需要的。
为寻求正确性的科学家、工程师和分析师提供的数据验证库。
推荐阅读
- function - golang函数在传入参数中返回值
- javascript - 使用 javascript 和 css 将任务列表添加到我的 HTML
- spring-boot - Spring Boot 2.3+ 不再打印有用的错误信息以进行验证(来自 MethodArgumentNotValidException)
- python - 无法导入名称“MultiRNNCell”
- typescript - Vue @Watch 未触发布尔值更改
- authentication - 使用 oauth 2.oc 从 azure 函数调用 web api#
- r - knitr 在 ggplots 中渲染缺少的标签
- python - python3从字符串中提取:)符号
- assembly - AVR 汇编中的“set”指令有什么作用?
- java - 无法将类型“java.lang.String”的属性值转换为所需类型“java.sql.Date”