Python datacompy 找出两个DataFrames不同的地方

简介: 本篇博客解决在两个几乎完全相同的DataFrame当中如何找出不相同的元素,并使用datacompy直观的显示出来。

本篇博客解决在两个几乎完全相同的DataFrame当中如何找出不相同的元素,并使用datacompy直观的显示出来。

x表:

06cc0b63f1df4cda887a2b291a4701be.png

让x1和x2都是x的副本,则此时x1和x2的值是相同:

x1=x.copy()
x2=x.copy()

将其中x2的一个数据赋值为2000

x2.loc['罗梓烜']['20220125']=2000
x1[x1==x2].head(25) # 如何对不相等的数据进行纠正

此时可以看到下图这个数据是NaN值,说明对于这个数据来说x1和x2是不相同的

afbc1758fdae413885da4881157412fb.png

x1[x1==x2].isnull().sum()

e9d88028c931424b81968c51e45a5e63.png

但是现在还是不能确定出有异常值(也就是不相等的值的那行数据),因此我们考虑使用datacompy

安装:

!pip install datacompy
import datacompy,pandas as pd,sys
compy=datacompy.Compare(x1,x2,on_index=True)
compy
print(compy.matches())
print(compy.report())

此时就可以很清晰的看到两个DataFrame当中不相同的值了:

2f6efcbfe88942479b52e1e3317932c8.png


相关文章
|
6月前
|
数据可视化 数据挖掘 API
请解释Python中的Seaborn库以及它的主要用途。
请解释Python中的Seaborn库以及它的主要用途。
240 0
|
6月前
|
存储 索引 Python
请解释Python中的NumPy库以及它的主要用途。
【2月更文挑战第27天】【2月更文挑战第97篇】请解释Python中的NumPy库以及它的主要用途。
186 0
|
2月前
|
Python
python简单分割文件的方法(python经典案例)
这篇文章介绍了两种使用Python进行文件分割的方法:通过读取指定字节数分割大文件成小文件,以及通过行数将文本文件分割成多个小文件。
67 1
|
3月前
|
存储 索引 Python
探究 Python3 字典的现世
【8月更文挑战第6天】Python 3 中的字典是一种内置数据类型,采用键值对形式存储数据,支持通过键快速检索值。字典无序且可变,键唯一。创建字典可用 `{}` 或 `dict()` 函数,访问、更新和删除条目分别通过索引、`update()` 和 `del` 实现。
40 1
|
6月前
|
机器学习/深度学习 数据采集 算法
请解释Python中的Sklearn库以及它的主要用途。
`Sklearn`是Python的顶级机器学习库,提供数据预处理、特征选择、分类回归、聚类、模型评估及参数调优等工具。它包含多种算法如SVM、决策树,并提供样例数据集便于实践。它是进行机器学习项目不可或缺的工具。
75 1
|
Python 容器
【Python基础】Python函数
【Python基础】Python函数
71 0
|
6月前
|
数据可视化 前端开发 Linux
请解释Python中的Matplotlib库以及它的主要用途。
【2月更文挑战第27天】【2月更文挑战第99篇】请解释Python中的Matplotlib库以及它的主要用途。
58 0
|
6月前
|
数据采集 数据可视化 数据挖掘
Python小姿势 - Python操作Excel表格数据
Python小姿势 - Python操作Excel表格数据
|
11月前
|
前端开发 Shell PHP
Python(二十七)python raise语法!
Python可以使用raise手动抛出异常。 看到菜鸟教程里边对 raise 的这个定义的时候,我有点迷茫,我在极力的去避免异常出现,我为什么还要手动抛出异常呢? 1:raise 语句的基本语法格式: raise [exceptionName [(reason)]] 2:基本使用方法 (1):直接一个raise抛出异常 python 复制代码 try: i = 1 while(i < 10): raise print(i) i += 1 except: print('raise 手动抛出异常') 输出: bas
72 1
|
11月前
|
前端开发 Shell 索引
Python(二十二)python切片的相关概念总结
首先,要注意一件事,在python中,字符串,元组,列表的取值都可以使用下标来实现。 其实切片这个用法之前在看列表和元组的时候,提到过。 说白了其实就是根据索引获取元素。只是在python中,给他起了个名字叫切片。 一:切片操作语法 一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没有时,start_index=end_index,表示切取start_index指定的那个元素。 切片操作基本表达式: css 复制代码 object[start_index:end_in
147 0