用pandas数据帧进行数据验证的包
dfval的Python项目详细描述
dfval公司
dfval
可用于比较两个数据帧并确定数据帧之间的差异。它还具有验证属性或更新数据帧的方法。在
下面的示例创建了两个小的数据帧,并使用dfval
进行了比较,并详细介绍了如何使用dfval
。在
compare()
示例
1。导入dfval和熊猫
import dfval as dv
import pandas as pd
2。创建两个数据帧(x和y)
^{pr2}$3。定义用于比较的键和数量字段
k = ['loc_id', 'greg_d']
qty_f = ['qty_sum', 'qty_ct']
4。呼叫compare()
# call compare passing the x dataframe, y dataframe, key, the quantity field name, and optionally the keep_comparison (True or False), decimal rounding, and threshold for quantity comparison
c = dv.compare(dfx, dfy, k, qty_f, keep_comparison = True, decimal_round = 4, threshold = 0.01)
{1$字符串^。c.results
rec_chk_pass | rec_count_x | rec_count_y | rec_count_z | rec_count_same | rec_count_diff | rec_count_notinx | rec_count_notiny | rec_count_ex |
---|---|---|---|---|---|---|---|---|
True | 4 | 4 | 5 | 2 | 1 | 1 | 1 | 3 |
6。c.exceptions
7。c.comparison
loc_id | greg_d | qty_sum_x | qty_ct_x | qty_sum_y | qty_ct_y | diff_qty_sum | diff_qty_ct | exception_type |
---|---|---|---|---|---|---|---|---|
5000 | 2019-12-15 | 100.0 | 2.0 | 100.0 | 2.0 | 0.0 | 0.0 | match |
5000 | 2019-12-22 | 200.0 | 3.0 | 190.0 | 3.0 | 10.0 | 0.0 | diff_qty |
5000 | 2019-12-29 | 500.0 | 4.0 | 500.0 | 4.0 | 0.0 | 0.0 | match |
5000 | 2019-12-08 | 75.0 | 3.0 | NaN | NaN | NaN | NaN | not_in_y |
5000 | 2019-12-01 | NaN | NaN | 75.0 | 3.0 | NaN | NaN |
compare()
细节
compare()
可用于比较两个数据帧中的维度或维度和数量值。要只比较维度,请省去下面列出的qty_n
、decimal_round
和threshold
参数。在
输入
compare()
有三个必需参数和四个可选参数:
- 必需参数
x
:使用比较的两个数据帧之一(顺序无关紧要)y
:用于比较的两个数据帧中的第二个(顺序无关紧要)k
:用于比较的数据帧中的公共键的列表
- 可选参数
qty_n
:要比较的数量字段的列表- 注意:如果
qty_n
未通过,compare()
将只对维度(k
)进行比较
- 注意:如果
keep_comparison
:在结果比较数据帧中保留比较的所有记录decimal_round
:比较中数量字段四舍五入的位数(列在qty_n
中的字段)threshold
:在数量比较中应该被视为异常的阈值
输出
compare()
返回一个对象,其中包含两个数据帧,用于描述比较结果和异常。在
exceptions
:每个差异对应一个记录- 异常类型(
exception_type
):- not_u in_x:键存在于y数据帧中,但不存在于x中
- not_u in_y:键存在于x数据帧中,但不存在于y中
- diff_qty:key同时存在于x和y数据帧中,但一个或多个quantity列中的差异大于threshold
- 异常类型(
result
:一条记录显示用于比较的计数- 回收通道:
- x和y的外部联接中的记录计数是否等于以下记录计数的总和:匹配的记录、数量差的记录、x中不y的记录和y中但不x的记录
- 只要x或y数据集中的键中没有重复项,它就应该始终是
True
- 回收通道:
comparison
:比较结果中的所有记录(仅在keep_comparison = True
时保留)- 异常类型与
exceptions
数据帧相同,而且它有match
的记录
- 异常类型与
备注:
compare()
首先检查x和y数据帧,确保它们都在传入的key和quantity字段中定义了所有列。如果两个数据帧中缺少一个或多个列,则会打印一条消息(“列名检查失败”),并且不会运行比较。exceptions
和{}将是{ }。在 NaN
x和y数据集中数量字段中的值被转换为零。如果发生这种情况,将打印一条消息compare()
检查是否存在重复密钥,如果发现重复密钥,则打印一条消息。比较将继续运行并创建结果。然而,结果可能是预期的。最好在使用compare()
之前处理密钥中的重复项。在- 记录的结果如果结果是
FALSE
,则计数检查打印:- 一个但不是另一个中的相同、差异和记录计数不匹配
- 项目
标签: