Como identificar a primeira ocorrência de linhas duplicadas em pandas do Python. Dataframe

Eu tenho um DataFrame pandas com valores duplicados para um conjunto de colunas. Por exemplo:

df = pd.DataFrame({'Column1': {0: 1, 1: 2, 2: 3}, 'Column2': {0: 'ABC', 1: 'XYZ', 2: 'ABC'}, 'Column3': {0: 'DEF', 1: 'DEF', 2: 'DEF'}, 'Column4': {0: 10, 1: 40, 2: 10})

In [2]: df
Out[2]: 
   Column1 Column2 Column3  Column4 is_duplicated  dup_index
0        1     ABC     DEF       10         False          0
1        2     XYZ     DEF       40         False          1
2        3     ABC     DEF       10          True          0

Linha (1) e (3) são iguais. Essencialmente, linha (3) é uma duplicata da linha (1).

Eu estou procurando a seguinte saída:

Is_Duplicate, contendo se a linha é duplicada ou não [pode ser realizada usando o método "duplicado" em colunas do dataframe (Column2, Column3 e Column4)]

Dup_Index o índice original da linha duplicada.

In [3]: df
Out[3]: 
   Column1 Column2 Column3  Column4  Is_Duplicate  Dup_Index
0        1     ABC     DEF       10         False          0
1        2     XYZ     DEF       40         False          1
2        3     ABC     DEF       10          True          0

questionAnswers(2)

yourAnswerToTheQuestion