Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

505
Visualizações
Python: convierta todos los elementos en un marco de datos en cadenas

Seguí el siguiente procedimiento: En Python, ¿cómo convierto todos los elementos de una lista en flotantes? porque cada columna de mi marco de datos es una list , pero en lugar de floats , elegí cambiar todos los valores a strings .

df = [str(i) for i in df]

Pero esto fracasó.

Simplemente borró todos los datos excepto la primera fila de nombres de columna.

Luego, probar df = [str(i) for i in df.values] resultó en cambiar todo el marco de datos en una gran lista, pero eso estropea demasiado los datos para poder cumplir con el objetivo de mi secuencia de comandos, que es exportar el marco de datos a mi tabla de Oracle.

¿Hay alguna manera de convertir todos los elementos que están en mi marco de datos que NO son cadenas en cadenas?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puedes usar esto:

 df = df.astype(str)

por curiosidad, decidí ver si hay alguna diferencia en la eficiencia entre la solución aceptada y la mía.

Los resultados están a continuación:

ejemplo df:

 df = pd.DataFrame([list(range(1000))], index=[0])

prueba df.astype :

 %timeit df.astype(str) >> 100 loops, best of 3: 2.18 ms per loop

prueba df.applymap :

 %timeit df.applymap(str) 1 loops, best of 3: 245 ms per loop

Parece que df.astype es mucho más rápido :)

over 4 years ago · Santiago Trujillo Relatório

0

Puedes usar el método applymap :

 df = df.applymap(str)
over 4 years ago · Santiago Trujillo Relatório

0

Con pandas >= 1.0 ahora hay un tipo de datos de cadena dedicado:

Puede convertir su columna a este tipo de datos de cadena de pandas usando .astype('string') :

 df = df.astype('string')

Esto es diferente de usar str que establece el tipo de datos 'objeto' de pandas:

 df = df.astype(str)

Puede ver la diferencia en los tipos de datos cuando observa la información del marco de datos:

 df = pd.DataFrame({ 'zipcode_str': [90210, 90211] , 'zipcode_string': [90210, 90211], }) df['zipcode_str'] = df['zipcode_str'].astype(str) df['zipcode_string'] = df['zipcode_str'].astype('string') df.info() # you can see that the first column has dtype object # while the second column has the new dtype string # Column Non-Null Count Dtype --- ------ -------------- ----- 0 zipcode_str 2 non-null object 1 zipcode_string 2 non-null string dtypes: object(1), string(1)


De los documentos:

El tipo de extensión 'string' resuelve varios problemas con las matrices NumPy object-dtype:

1) Puede almacenar accidentalmente una combinación de cadenas y no cadenas en una matriz de tipo de objeto. Un StringArray solo puede almacenar cadenas.

2) object dtype rompe operaciones específicas de dtype como DataFrame.select_dtypes(). No hay una forma clara de seleccionar solo texto mientras se excluyen las columnas que no son de texto, pero que aún son de tipo objeto.

3) Al leer código, el contenido de una matriz de tipo de objeto es menos claro que una cadena.


Puede encontrar información sobre pandas 1.0 aquí:
https://pandas.pydata.org/pandas-docs/version/1.0.0/whatsnew/v1.0.0.html

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda