如何用Great Expectations校验Pandas DataFrame的索引?
Great Expectations校验Pandas DataFrame索引的方法
你已经知道如何用Great Expectations校验DataFrame的列名和数据类型,但当DataFrame设置了索引后,需要针对索引做类似校验时,可以直接使用Great Expectations提供的索引专属校验方法,无需自定义函数。
示例场景
构造带命名索引的DataFrame:
import pandas as pd import great_expectations as ge df = pd.DataFrame({'A': [1.1, 2.2, 3.3], 'B': [4.4, 5.5, 6.6]}).set_index('A') df_asset = ge.from_pandas(df)
1. 校验索引存在
使用expect_index_to_exist()方法,若索引有名称,可指定index_name参数精准校验:
# 校验名为'A'的索引存在 df_asset.expect_index_to_exist(index_name='A')
如果是无命名的单索引,直接调用df_asset.expect_index_to_exist()即可完成校验。
2. 校验索引数据类型
使用expect_index_values_to_be_of_type()方法,同样可通过index_name指定目标索引(适用于单索引或多级索引的指定层级):
# 校验名为'A'的索引值数据类型为float df_asset.expect_index_values_to_be_of_type('float', index_name='A')
对于无命名单索引,省略index_name参数即可:
df_asset.expect_index_values_to_be_of_type('float')
执行校验并输出结果
完成规则定义后,执行校验并判断结果:
if df_asset.validate()["success"]: print("校验通过") else: print("校验失败")
多级索引扩展
如果是多级索引(MultiIndex),除了用index_name指定层级名称,还可以通过index_position参数指定层级的位置(从0开始计数)来进行针对性校验。
内容的提问来源于stack exchange,提问作者Elis
相关产品推荐
相关产品推荐

