当前位置: 首页 > 知识库问答 >
问题:

错误:只能比较标记相同的数据帧对象[重复]

韩梓
2023-03-14

我有两个数据帧:

上一页:

       Time       FO_SYMBOL  TOTAL_VOLUME
0  14:20:41             ACC        6778.0
1  14:56:57        ADANIENT        4314.0
2  09:19:12      AUROPHARMA        1295.0
3  15:09:14      BAJAJ-AUTO        8339.0
4  09:19:12         HCLTECH        1431.0
5  09:19:12      HEROMOTOCO        1551.0
6  13:53:02      ULTRACEMCO        8284.0

df:

       Time       FO_SYMBOL  TOTAL_VOLUME
0  14:20:41             ACC        6778.0
1  14:56:57        ADANIENT        4314.0
2  09:19:12      AUROPHARMA        1295.0
3  15:09:14      BAJAJ-AUTO        8339.0
4  09:19:12         HCLTECH        1431.0
5  09:19:12      HEROMOTOCO        1551.0
6  13:53:02      ULTRACEMCO        8284.0
7  14:55:12      BHEL              8114.0 <<= NEW ROW
8  14:55:12      BHEL              8120.0 <<= NEW ROW

我想比较两个dataframe并找到不同的新行。我希望我的输出如下:

结果:

0  14:55:12      BHEL              8114.0 <<= NEW ROW
1  14:55:12      BHEL              8120.0 <<= NEW ROW

目前我使用的代码如下:

indexes = (df != prev_df).any(axis=1)
new_df = df.loc[indexes]

但是当在df中填充新行时,我得到的错误如下:

只能比较标记相同的数据帧对象

请帮忙。

共有2个答案

壤驷宏才
2023-03-14

试试这个

df3 = pd.merge(df,prev_df,on='a',how='left',indicator=True)
df3[df3['_merge']=='left_only']
df3.drop(['_merge'],axis=1,inplace=True)

      Time FO_SYMBOL  TOTAL_VOLUME
7  14:55:12      BHEL        8114.0
8  14:55:12      BHEL        8120.0
夏英发
2023-03-14

您可以conatdrop_duplicates

cols=prev_df.columns.intersection(df.columns).tolist()
pd.concat([df, pd.concat([prev_df]*2)]).drop_duplicates(cols, keep=False)
       Time FO_SYMBOL  TOTAL_VOLUME
7  14:55:12      BHEL        8114.0
8  14:55:12      BHEL        8120.0
 类似资料:
  • 两个 NavigableString 或 Tag 对象具有相同的HTML或XML结构时, Beautiful Soup就判断这两个对象相同. 这个例子中, 2个 <b> 标签在 BS 中是相同的, 尽管他们在文档树的不同位置, 但是具有相同的表象: “<b>pizza</b>” markup = "<p>I want <b>pizza</b> and more <b>pizza</b>!</p>"

  • 两个 NavigableString 或 Tag 对象具有相同的HTML或XML结构时, Beautiful Soup就判断这两个对象相同. 这个例子中, 2个 <b> 标签在 BS 中是相同的, 尽管他们在文档树的不同位置, 但是具有相同的表象: “<b>pizza</b>” markup = "<p>I want <b>pizza</b> and more <b>pizza</b>!</p>"

  • 我有两个java对象是从同一个类实例化的。 既然它是同一类型的,那么它不应该执行“if”部分中的语句吗?

  • 我有以下代码: 结果如下: 但是将的类型更改为将产生不同的输出,例如: 新的输出: 怎么会这样?为什么第一个示例代码没有输出?

  • 我有一个如下所示的Powershell数组: 我需要找到TSMserver和集群的所有VM都具有相同的值。 我需要一个命令来检索(例如)这两个VM,因为它们共享相同的第一个值。 所以实际上我需要将数组中的每个对象与其他对象进行比较,以找到前两个属性的公共值。 提前非常感谢!

  • 问题内容: 我得到的错误就在这行 。 该怎么办?其他逻辑还可以吗? 我想做的是有一个A列表和一个B列表,其中一个属性与id相同;尽管变量名不同。即在和在B。现在我将两个列表都放在ListAll中,并在相同的变量id / bid上对它们进行排序。我有A和B实现可比性。 和我的listAll是对象类型? 我该怎么做?谢谢。 问题答案: 您可以添加一个通用基类并在那里进行比较,如下所示:

  • 使用table()方法查看结构化数据并比较数据对象。 table()方法提供了一种简单的方法来查看包含类似数据的对象和数组。当调用时,它将获取到的对象属性创建为标题。每一行数据来自每个索引下的属性值。 基本示例: 记录对象的数组 在它最基本的形式中,你需要的是一个具有相同属性的对象数组。 table() 命令将完整剩下的工作: console.table([{a:1, b:2, c:3}, {a:

  • 如果两个集合包含相同的对象,如何进行比较? 当然会打印出假的。