Cómo identificar la primera aparición de filas duplicadas en el marco de datos de los pandas de Python

Tengo un DataFrame de pandas con valores duplicados para un conjunto de columnas. Por ejemplo:

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

La fila (1) y (3) son iguales. Esencialmente, la fila (3) es un duplicado de la fila (1).

Estoy buscando la siguiente salida:

Is_Duplicate, que contiene si la fila es un duplicado o no [se puede lograr usando el método "duplicado" en las columnas del marco de datos (Columna2, Columna3 y Columna4)]

Dup_Index El índice original de la fila 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

Respuestas a la pregunta(2)

Su respuesta a la pregunta