Pandas2.2 DataFrame
Reindexing selection label manipulation
方法 | 描述 |
---|---|
DataFrame.add_prefix(prefix[, axis]) | 用于在 DataFrame 的行標簽或列標簽前添加指定前綴的方法 |
DataFrame.add_suffix(suffix[, axis]) | 用于在 DataFrame 的行標簽或列標簽后添加指定后綴的方法 |
DataFrame.align(other[, join, axis, level, …]) | 用于對齊兩個 DataFrame 或 Series 的方法 |
DataFrame.at_time(time[, asof, axis]) | 用于篩選 特定時間點 的行的方法 |
DataFrame.between_time(start_time, end_time) | 用于篩選 指定時間范圍內的數據行 的方法 |
DataFrame.drop([labels, axis, index, …]) | 用于從 DataFrame 中刪除指定行或列的方法 |
DataFrame.drop_duplicates([subset, keep, …]) | 用于刪除重復行的方法 |
DataFrame.duplicated([subset, keep]) | 用于檢測 重復行 的方法 |
DataFrame.equals(other) | 用于比較兩個 DataFrame 是否完全相等的方法 |
pandas.DataFrame.equals()
pandas.DataFrame.equals(other)
是用于比較兩個 DataFrame
是否完全相等的方法。它會逐個檢查索引、列名以及每個元素的值是否一致,適用于數據驗證和測試場景。
📌 方法簽名
DataFrame.equals(other)
🔧 參數說明:
參數 | 類型 | 說明 |
---|---|---|
other | DataFrame 或其他對象 | 要比較的對象,如果不是 DataFrame ,直接返回 False |
? 返回值:
bool
:如果兩個DataFrame
完全相同(包括索引、列順序、值、數據類型),則返回True
;否則返回False
。
🧪 示例代碼:
示例 1:兩個完全相同的 DataFrame
import pandas as pddf1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['x', 'y'])
df2 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['x', 'y'])print("df1.equals(df2):", df1.equals(df2))
輸出結果:
df1.equals(df2): True
示例 2:列順序不同
df3 = pd.DataFrame({'B': [3, 4], 'A': [1, 2]}, index=['x', 'y'])print("df1.equals(df3):", df1.equals(df3))
輸出結果:
df1.equals(df3): False
示例 3:索引不同
df4 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['a', 'b'])print("df1.equals(df4):", df1.equals(df4))
輸出結果:
df1.equals(df4): False
示例 4:數據類型不同但值相同
df5 = pd.DataFrame({'A': [1.0, 2.0], 'B': [3.0, 4.0]}, index=['x', 'y'])print("df1.equals(df5):", df1.equals(df5))
輸出結果:
df1.equals(df5): False
即使數值上相等,但由于
df1
中是整數類型而df5
是浮點類型,所以不認為相等。
示例 5:包含 NaN 的比較
df6 = pd.DataFrame({'A': [1, None], 'B': [None, 4]}, index=['x', 'y'])
df7 = pd.DataFrame({'A': [1, None], 'B': [None, 4]}, index=['x', 'y'])print("df6.equals(df7):", df6.equals(df7))
輸出結果:
df6.equals(df7): True
NaN
值在對應位置也視為相等。
🧠 應用場景:
- 測試腳本中驗證數據處理流程是否正確;
- 數據版本控制或快照對比;
- 檢查兩個來源的數據是否一致;
- 確保數據轉換前后未發生意外更改。
?? 注意事項:
- 必須結構和內容完全一致 才返回
True
; - 包括索引順序、列順序、數據類型、
NaN
位置等; - 不推薦用于大規模數據比較,效率較低;
- 對比時不會自動忽略行/列順序差異。