Python: devuelve valores de un bucle sin interrumpir

Día, tengo una lista de individuos agrupados por lugar. Quiero producir una nueva variable que dé un número a cada individuo dependiendo de su lugar. Cómo me gustaría que se vieran mis datos es:

place       individual
here        1
here        2
here        3
there       1
there       2
somewhere   1 
somewhere   2

He escrito esto:

    nest="ddd", "ddd", "fff", "fff", "fff", "fff", "qqq", "qqq"

    def individual(x):
        i = 0
        j = 1
        while i < len(x):
            if x[i] == x[i-1]:
                print(j+1)
                i = i + 1
                j = j + 1
            else:
                print(1)
                i = i + 1
                j = 1

    individual(nest)

Esto imprime los valores que quiero, sin embargo, cuando pongo el retorno allí, se sale del ciclo y solo devuelve el primer valor. Me preguntaba cómo podría devolver estos valores para poder agregarlos a mis datos como una nueva columna.

Leí sobre el rendimiento? pero no estaba seguro de si es apropiado. ¡Gracias por tu ayuda!

Saludos, Adam

Respuestas a la pregunta(1)

Su respuesta a la pregunta