python - pandas.Dataframe 的列名和类型用 mypy 还是其他静态方式?
问题描述
我有一个func
接受 a的函数pandas.Dataframe
,数据框必须具有列:'col_foo', 'col_bar'
并且它们的类型必须pd.Timestamp, np.integer
确保func
不会失败。
我将如何确保这些列以静态方式存在?
我可以做这样的事情:
def func(df: pd.Dataframe):
cols_struct = {'col_foo': pd.Timestamp, 'col_bar': np.integer}
# also check the columns types here
if not set(df.columns).issuperset(cols_struct.keys()):
raise ValueError('the dataframe must be structured like', cols_struct)
或者使用现有的库并使用装饰器巧妙地完成它。
但是我希望我的代码在mypy
静态类型检查期间而不是在运行时失败,我将如何输入提示func
?
解决方案
推荐阅读
- c++ - 添加到双向链接列表的前面,为什么我的列表不正确并向后打印?
- r - 使用 apply 将每个函数调用的多个输出放置到 R 中数据帧的一行中
- php - 内部站点搜索仅匹配确切的单词
- javascript - 鼠标在jquery中移动时添加不同的图像
- woocommerce - Woocommerce - 根据人数计算额外费用
- c++ - 为什么我的代码会导致高返回值?C++
- android - 导航图 - 如何使用导航图和导航抽屉中的自定义片段来管理导航抽屉
- mysql - 带有 WHERE 子句的 MySQL SELECT 查询不从两个表中返回行
- javascript - 搜索表单多个字段 javascript
- angular - 超时 - 在 jest.setTimout.Timeout 指定的 10000 毫秒超时内不涉及异步回调