python 比较两个不同 Dataframe 的值

7hiiyaii  于 2023-03-28  发布在  Python
关注(0)|答案(2)|浏览(146)

我有两个DataFrames,两个都有相同的列,但一个是历史数据,另一个是“新”数据。新数据有时可能包含历史数据中已经存在的信息。所以我想说,如果新数据中的'comment_id'的值已经存在于历史数据中,没有什么。否则,将该行添加到历史数据中。
我试着这么做:

historic_comments = [x for x in filtered_comments if filtered_comments['comment_id'] not in historic_comments['comment_id']]

但出现错误:
TypeError:不可哈希的类型:'系列'

okxuctiv

okxuctiv1#

使用布尔掩码和isin

m = ~filtered_comments['comment_id'].isin(historic_comments['comment_id'])
out = pd.concat([historic_comments, filtered_comments[m]], axis=0, ignore_index=True)

输出:

>>> out  # new historic_comments dataframe
  comment_id
0    bonjour
1      hello
2      world
3        new

>>> filtered_comments
  comment_id
0      hello
1        new
2      world

>>> historic_comments
  comment_id
0    bonjour
1      hello
2      world
wb1gzix0

wb1gzix02#

我认为这就是你可以做的假设historic_df是旧的df和new_df是新的df

historic_df = pd.concat(
    [historic_df, new_df.loc[~new_df["comment_id"].isin(historic_df["comment_id"])]],
    ignore_index=True,
)

相关问题