Предположим, у меня есть фрейм данных, как показано ниже
id date email phone country
john 2020-01-02 10:09:00.11 john@email 123 USA
john 2020-01-02 10:09:00.11 john@email 456 USA
john 2020-01-02 10:09:00.11 john@email 123 USA
tim 2019-01-08 04:06:00.10 tim@email 555 JAP
ben 2018-06-02 08:02:00.00 ben@email 999 MEX
ben 2018-06-02 08:02:00.00 neb@email 999 MEX
john 2017-06-02 08:02:00.00 john@email 456 USA
Что я хочу сделать, это взять каждую строку, где есть дубликаты между идентификатором и датой, и посмотреть, есть ли какие-либо различия, и создать новый столбец, указывающий, что, ЕСЛИ ИЗМЕНЕНИЕ не является электронной почтой.
Так что пример, чтобы лучше объяснить. Есть три строки для Джона, где дата совпадает (2020-01-02 10: 09: 00.11). В телефоне есть разница, где два - «123», а один - «456». В результате в новом столбце с именем diff значение будет TRUE для каждой строки.
Для бена есть две строки с одинаковой датой. Тем не менее, единственное различие возникает в столбце электронной почты, поэтому я хочу рассмотреть его как отсутствие различий.
Если для комбинированной записи идентификатора и даты, такой как tim или другая запись, существует только одна строка для Джона вывод - ЛОЖЬ.
Ниже показано, как будет выглядеть ожидаемый результат. Любая помощь будет принята с благодарностью. Особый случай, связанный с электронными письмами, действительно отталкивает меня.
id date email phone country diff
john 2020-01-02 10:09:00.11 john@email 123 USA True
john 2020-01-02 10:09:00.11 john@email 456 USA True
john 2020-01-02 10:09:00.11 john@email 123 USA True
tim 2019-01-08 04:06:00.10 tim@email 555 JAP False
ben 2018-06-02 08:02:00.00 ben@email 999 MEX False
ben 2018-06-02 08:02:00.00 neb@email 999 MEX False
john 2017-06-02 08:02:00.00 john@email 456 USA False