【发布时间】:2020-09-25 14:28:10
【问题描述】:
我有 2 个数据帧,其结构方式如下:
df1 = pd.read_csv("Main_Database.csv")
# df1 Columns: ..., Timestamp, Name, Query, Website, Status,...
df2 = pd.read_csv("New_Raw_Results.csv")
# df2 COlumns: ..., Timestamp, Name, Query, Website, Status,...
两个数据框可以拥有完全相同的列。
我的Main_database.csv 跟踪所有记录,我的new_raw_results 是每周新结果的列表。我想根据 3 个场景处理我的 main_database 中的更改:
A) 如果在 DF1 中找到 DF2 中的查询 AND 网站,
--> 使用 Df2 中的 Timestamp 在 DF1 列“Last Seen”中写入
--> 覆盖状态为"STILL ACTIVE"
B) 如果 DF2 中的查询 AND 网站在 DF1 中未找到,
--> 将整个 df2.row 附加到 df1
--> 覆盖状态为"NET NEW"
C) IF 查询 AND DF1 中的网站在 DF2 中未找到,
--> 覆盖状态为"EXPIRED"
我尝试过使用合并和连接的组合,但我被困在这里。例如,如果我在一个新的数据框中隔离了这两个表之间的内部连接的结果,我不确定如何使用它来对我的主数据库执行操作。我试图在一个函数下满足所有这些条件,所以我可以使用这个函数来处理新条目。
你会如何构建这个函数?解决这个问题的最简洁的方法是什么?
【问题讨论】:
-
如果您接近您的任何合并或连接或任何中间步骤似乎有效,您应该在问题中说明哪些有效,哪些无效以及它们如何不足。您还应该包含两个 DataFrame 的最小示例 - 仅包含您感兴趣的几列和足够的行以根据您的三个条件生成
True和False值。 -
请接受任何答案,如果有正确的答案,那么显然没有什么可做的了