Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

976
Vistas
Add uuid to a new column in a pandas DataFrame

I'm looking to add a uuid for every row in a single new column in a pandas DataFrame. This obviously fills the column with the same uuid:

import uuid
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(4,3), columns=list('abc'),
                  index=['apple', 'banana', 'cherry', 'date'])
df['uuid'] = uuid.uuid4()
print(df)

               a         b         c                                  uuid
apple   0.687601 -1.332904 -0.166018  34115445-c4b8-4e64-bc96-e120abda1653
banana -2.252191 -0.844470  0.384140  34115445-c4b8-4e64-bc96-e120abda1653
cherry -0.470388  0.642342  0.692454  34115445-c4b8-4e64-bc96-e120abda1653
date   -0.943255  1.450051 -0.296499  34115445-c4b8-4e64-bc96-e120abda1653

What I am looking for is a new uuid in each row of the 'uuid' column. I have also tried using .apply() and .map() without success.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

This is one way:

df['uuid'] = [uuid.uuid4() for _ in range(len(df.index))]
over 4 years ago · Santiago Trujillo Denunciar

0

I can't speak to computational efficiency here, but I prefer the syntax here, as it's consistent with the other apply-lambda modifications I usually use to generate new columns:

df['uuid'] = df.apply(lambda _: uuid.uuid4(), axis=1)

You can also pick a random column to remove the axis requirement (why axis=0 is the default, I'll never understand):

df['uuid'] = df['col'].apply(lambda _: uuid.uuid4())

The downside to these is technically you're passing in a variable (_) that you don't actually use. It would be mildly nice to have the capability to do something like lambda: uuid.uuid4(), but apply doesn't support lambas with no args, which is reasonable given its use case would be rather limited.

over 4 years ago · Santiago Trujillo Denunciar

0

from uuid import uuid4
df['uuid'] = df.index.to_series().map(lambda x: uuid4())
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda