我尝试使用Pandas来检测两个CSV之间的更改。我希望它能够突出显示哪些UID发生了更改。我附上了一个理想输出here.的示例
CSV 1(导入为 Dataframe ):
| UID | Email |
| -------- | --------------- |
| U01 | u01@email.com |
| U02 | u02@email.com |
| U03 | u03@email.com |
| U04 | u04@email.com |
CSV 2(导入为 Dataframe ):
| UID | Email |
| -------- | --------------- |
| U01 | u01@email.com |
| U02 | newemail@email.com |
| U03 | u03@email.com |
| U04 | newemail2@email.com |
| U05 | u05@email.com |
| U06 | u06@email.com |
在两个CSV中,U 02和U 04看到了电子邮件更改,而U 05和U 06则完全是新记录。
我试过使用pandas比较功能,但不幸的是它不起作用,因为CSV 2的记录比CSV 1多。
我已经连接了UID和email字段,就像这样,然后创建了一个名为“Unique”的新字段,以显示连接的值是重复的True还是False(但不显示它是否完全是一个新记录)
df3['Concatenated'] = df3["UID"] +"~"+ df3["Email"]
df3['Unique'] = ~df3['Concatenated'].duplicated(keep=False)
这在一定程度上是可行的,但感觉很笨重,我想知道是否有人有更聪明的方法来做到这一点-特别是当涉及到显示唱片是否是新的或不是。
1条答案
按热度按时间vwkv1x7d1#
这里的策略是合并
UID
上的两个 Dataframe ,然后比较email列,最后查看新UID是否在UID列表中。给出
df_compare
为: