jot*_*wie 4 python dataframe pandas
我有两个 Pandas 数据框,这些行的顺序不同但包含相同的列。我的目标是轻松比较两个数据框并确认它们都包含相同的行。
我尝试过“equals”函数,但似乎缺少一些东西,因为结果不符合预期:
df_1 = pd.DataFrame({1: [10,15,30], 2: [20,25,40]})
df_2 = pd.DataFrame({1: [30,10,15], 2: [40,20,25]})
df_1.equals(df_2)
Run Code Online (Sandbox Code Playgroud)
我希望结果返回 True,因为两个数据帧都包含相同的行,只是顺序不同,但它返回 False。
您可以指定用于排序的列DataFrame.sort_values- 在我的解决方案中按所有列排序,并DataFrame.reset_index使用drop=True以下两个中的默认索引DataFrames:
df11 = df_1.sort_values(by=df_1.columns.tolist()).reset_index(drop=True)
df21 = df_2.sort_values(by=df_2.columns.tolist()).reset_index(drop=True)
print (df11.equals(df21))
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |