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

2024-04-29 12:42:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧:

上一个数据框:

       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

测向:

       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

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

结果:

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中填充新行时,我得到的错误是:

Can only compare identically-labeled DataFrame objects

请帮忙。你知道吗


Tags: 数据dfnewautotimesymbolrowtotal
2条回答

试试这个

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

您可以concatdrop_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

相关问题 更多 >