【发布时间】:2017-06-28 03:09:09
【问题描述】:
我正在寻找的是一种删除重复项并获取最新记录的方法。我知道 drop_duplicates() 但这只会删除 100% 相同的行。所以所需的输出看起来像:
我尝试过这样的事情:
grouped = df.groupby(['First Name', 'Middle Name','Last Name','Job Title','Active','Contractor'])
new_data = grouped['Update Date'].agg(np.max).to_frame().reset_index()
但必须有一种更好的方法来做到这一点,而不是按每列分组,然后取更新日期的最大值。 如果我想按某些列分组,并采用最大更新日期怎么办。但也采用其他未分组的列。
例如按名字、中间名和姓氏分组,仍然取最新记录的整个记录。
谢谢!
【问题讨论】:
-
最好有一个唯一标识每个人的密钥。我在这里假设第一个,中间和最后一个唯一标识这个人。如果有两个人同名或有人改名怎么办?你需要先考虑这些事情。
-
无论哪种方式,我都需要找到一种方法来分组并获取最新记录
-
如果您提供数据框的代码版本 (
df = ....) 以便我们可以复制粘贴它,您将获得更快的响应以供将来参考。图片看起来很漂亮,但无助于获得像您这样的数据框。
标签: python pandas duplicates pandas-groupby