0

我有一个带有电子邮件地址和日期戳的数据框,我需要找到从每个地址收到的第一封电子邮件。

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']])

unique 将采用排序数据框的第一个值吗?有没有更好的方法来做到这一点?谢谢!

4

1 回答 1

2

DataFrame.drop_duplicates()默认保持第一个观察:

DataFrame.drop_duplicates(cols=None, take_last=False, inplace=False)

按照您的建议进行排序DataFrame,您最终只会收到最旧的电子邮件。

请参阅文档DataFrame.drop_duplicates

让我补充一点,您可以指出要删除重复项的列,即电子邮件列:df.drop_duplicates(['Email'])

于 2013-08-11T03:32:10.827 回答