python - 如何在熊猫中将数据框作为一个小组进行比较?
问题描述
我有两个这样的数据框:
DF1:
ID v1 v2 v3
289 1455.0 2.0 0.62239
289 1460.0 0.0 0.46037
289 1465.0 4.0 0.41280
290 1470.0 0.0 0.39540
290 1475.0 2.0 0.61809
290 1475.0 2.0 0.61809
DF2:
ID v1 v2 v3
289 1423.0 2.0 0.62239
289 142Q.0 0.0 0.46037
289 14FW.0 4.0 0.41280
290 14Q3.0 0.0 0.39540
290 1453.0 2.0 0.61809
290 1454.0 2.0 0.61809
我想将包含相同ID的行作为一个整体进行比较(即:当我比较两个df之间的前三行时,我不在乎行的顺序,只想对不同的值进行微调),现在我的方法给了我逐行比较的结果,这可能有问题:
如果df1的第1行与df2的第2行相同,df1的第3行与df2的第1行相同,df1的第2行与df2的第3行相同,这意味着前三行是相同的,但是通过使用我的方法(逐行比较),它给了我每行之间的差异。
有人可以帮我弄这个吗?非常感谢。
这是我尝试的方法和错误:
resultBool01 = (DF1 != DF2).stack() # Create Frame of comparison booleans
resultdiff01 = pd.concat([DF1.stack()[resultBool01], DF2.stack()[resultBool01]], axis=1)
resultdiff01.columns=["output_01", "output_02"]
ValueError: cannot handle a non-unique multi-index!
预期结果:(每个 ID 的值不同)
ID difvar output1 output2
289 v1 1455 1423
解决方案
推荐阅读
- javascript - 回调 javascript postMessage ios swift
- java - 运行 Spring MVC + Hibernate+ Rest API 项目时遇到错误
- json - 制表器不识别列?
- json - 反序列化对象c#RIOT API的json数组[不工作]
- python-3.x - 如何使用 selenium 获取 youtube 中的所有评论?
- pouchdb - 如何使用单个查询 pouchDB 获取多个文档
- python - 将包含列表的列表转换为列表,然后转换为字符串
- python - 在 Python 中预加载 MP3 短片段以消除播放间隙(用于 Alexa 技能)
- c++ - 如何实现 std::unordered_map 搜索算法?
- reactjs - 参数如何在 useState 函数中的箭头函数的单行表达式中工作