我有一个包含电子邮件地址和日期戳的数据框,我需要找到从每个地址收到的第一封电子邮件。
df DateTime Email
10/01/13 a@a.com
14/02/13 a@a.com
16/02/13 b@b.com
24/07/13 a@a.com
12/01/12 b@b.com
这样的事情会起作用吗?
df.sort(column='DateTime')
new_df = unique(df[df['Email']])
唯一会获取排序数据框的第一个值吗? 有没有更好的方法呢? 谢谢!
答案 0 :(得分:2)
DataFrame.drop_duplicates()
默认保留第一个观察结果:
DataFrame.drop_duplicates(cols=None, take_last=False, inplace=False)
如您所建议的那样排序DataFrame
,您最终只会收到最旧的电子邮件。
请参阅the documentation for DataFrame.drop_duplicates
让我补充一点,您可以指明删除重复项的列,即电子邮件列:df.drop_duplicates(['Email'])