Pandas: як перевірити, чи рівні два dataframes
Ви можете використати наступний базовий синтаксис, щоб перевірити, чи рівні два панди DataFrames:
df1. equals (df2)
Це поверне значення True або False .
Якщо два DataFrame не однакові, ви можете використовувати такий синтаксис, щоб знайти рядки у другому DataFrame, яких немає в першому DataFrame:
#perform outer join on two DataFrames all_df = df1. merge (df2, indicator= True , how=' outer ') #find which rows only exist in second DataFrame only_df2 = all_df[all_df[' _merge '] == ' right_only '] only_df2 = only_df2. drop (' _merge ', axis= 1 )
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: Перевірте, чи рівні два фрейми даних pandas
Припустімо, що ми маємо наступні два panda DataFrames:
import pandas as pd #create first DataFrame df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'], ' points ': [12, 15, 22, 29, 24]}) print (df1) team points 0 to 12 1 B 15 2 C 22 3 D 29 4 E 24 #create second DataFrame df2 = pd. DataFrame ({' team ': ['A', 'D', 'F', 'G', 'H'], ' points ': [12, 29, 15, 19, 10]}) print (df2) team points 0 to 12 1 D 29 2 F 15 3 G 19 4:10 a.m.
Ми можемо використовувати наступний синтаксис, щоб перевірити, чи рівні два DataFrames:
#check if two DataFrames are equal df1. equals (df2) False
Вихід повертає False , що означає, що два DataFrames не рівні.
Потім ми можемо використовувати такий синтаксис, щоб знайти, які рядки існують у другому DataFrame, але не в першому:
#perform outer join on two DataFrames all_df = df1. merge (df2, indicator= True , how=' outer ') #find which rows only exist in second DataFrame only_df2 = all_df[all_df[' _merge '] == ' right_only '] only_df2 = only_df2. drop (' _merge ', axis= 1 ) #view results print (only_df2) team points 5 F 15 6 G 19 7:10 a.m.
З результату ми бачимо, що у другому DataFrame є три рядки, яких немає в першому DataFrame.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в pandas:
Pandas: додайте стовпець з одного DataFrame до іншого
Pandas: отримати рядки, яких немає в іншому DataFrame
Pandas: як перевірити, чи рівні кілька стовпців