我有两个 Dataframe :
DF1
ID Name
15 Max
7 Stacy
3 Frank
2 Joe
DF2
ID Name
2 Abigail
3 Josh
15 Jake
7 Brian
我把它们分类
df1 = df1.sort_values(by=['ID'])
df2 = df2.sort_values(by=['ID'])
得到
DF1
ID Name
2 Joe
3 Frank
7 Stacy
15 Max
DF2
ID Name
2 Abigail
3 Josh
7 Brian
15 Jake
但是,当我检查两个 Dataframe 中的“ID”列是否相同时,执行
print(df1['ID'].equals(df2['ID']))
它返回False,为什么会这样?有没有别的方法可以返回两列相等?
3条答案
按热度按时间qkf9rpyu1#
他们还在根据原始指数进行比较:
基本上发生的是检查
ID
和下一 Dataframe 中的ID_other
是否相等;它们不是。如果要检查是否相等而不考虑索引,请考虑:
或者重置两端的索引,然后使用
eq
。pbpqsu0x2#
这些帧很可能具有不同的索引。您应该执行以下操作:
备选方案:
kcwpcxri3#
不需要排序,可以使用
pandas.DataFrame.set_index
或pandas.DataFrame.eq
。例如,如果
df1
和df2
类似: