我有两个熊猫数据框,这些行的顺序不同,但包含相同的列。我的目标是轻松比较两个数据框并确认它们都包含相同的行。
我已经尝试过“等于”功能,但是似乎缺少了一些东西,因为结果不符合预期:
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)
我希望结果返回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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句