日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python-Pandas之两个Dataframe的差异比较

發布時間:2025/3/11 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-Pandas之两个Dataframe的差异比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天在外網找到一個比較dataframe的好庫,叫datacompy,它的優點有:

1、可以把對比后的信息詳情打印出來,比如列是否相等,行是否相等;

2、在數據中如果有不相等列,那么就只比較相同的列;

3、可以設置絕對差值和相對差值,比如我們比較有浮點數的數據時,設置下絕對差值為0.01,后面的一系列微小的值就忽略了;

4、在數據報告中,每一列的數據類型、不相等數量、最大差值和空值都詳細列出來了;

5、可以把不相等的列單獨取出來,取出來就是一個dataframe,可以查看具體哪些是不一樣的;

下面這張圖就是比較之后的報告:

代碼如下:

import datacompy, pandas as pd, sysfiles = [] try:files = [sys.argv[1], sys.argv[2]] except:print('命令行未檢測到文件參數。') # 這個方式可以通過命令行運行: # ?? # ? python3 cmpfiles.py testfile1.txt testfile2.txt #? # 上面自帶的兩個參數,就是通過 ?sys.argv 獲得的。if len(files) == 0:files = ['./TempFiles/temp_77.csv', './TempFiles/temp_77_new.csv']# files = ['./TempFiles/temp_77.csv', './TempFiles/temp_77_copy.csv'] # 如果直接運行這個腳本,那么用西面定義的 filesdf1 = pd.read_csv(files[0]) df2 = pd.read_csv(files[1])compare = datacompy.Compare(df1, df2, join_columns='key') # Compare 參數: # ? df1: 數據框1 # ? df2: 數據框2 # ? join_columns: 指定索引的列名,默認“None”,可以傳入數組,比如:['key', 'AdID'] # ? on_index: 是否要開啟索引,開啟之后不需要指定 join_columns,默認“False” # ? abs_tol: 絕對公差,默認“0” # ? rel_tal: 相對公差,默認“0” # ? df1_name: 報告中數據框1的名字,默認“df1” # ? df2_name: 報告中數據框2的名字,默認“df2” # ? ignore_spaces: 是否忽略空格,默認“False” # ? ignore_case: 是否忽略大小寫,默認“False”print(compare.matches()) # 最后判斷是否相等,返回 bool print(compare.report()) # 打印報告詳情,返回 string # print(compare.sample_mismatch('用戶數')) # 取出不相同的某一列數據,返回 dataframe

?

總結

以上是生活随笔為你收集整理的Python-Pandas之两个Dataframe的差异比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。