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

303
Visualizações
Python: compruebe si la columna del marco de datos contiene un tipo de cadena

Quiero verificar si las columnas en un marco de datos consisten en cadenas para poder etiquetarlas con números con fines de aprendizaje automático. Algunas columnas consisten en números, no quiero cambiarlos. El ejemplo de columnas se puede ver a continuación:

 TRAIN FEATURES Age Level 32.0 Silver 61.0 Silver 66.0 Silver 36.0 Gold 20.0 Silver 29.0 Silver 46.0 Silver 27.0 Silver

gracias =)

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

0

Tenga en cuenta que las respuestas anteriores incluirán DateTime, TimeStamp, Category y otros tipos de datos.

Usar object es más restrictivo (aunque no estoy seguro de si otros dtypes también serían de object dtype):

  1. Crear el marco de datos:

     df = pd.DataFrame({ 'a': ['a','b','c','d'], 'b': [1, 'b', 'c', 2], 'c': [np.nan, 2, 3, 4], 'd': ['A', 'B', 'B', 'A'], 'e': pd.to_datetime('today')}) df['d'] = df['d'].astype('category')

Eso se verá así:

 abcde 0 a 1 NaN A 2018-05-17 1 bb 2.0 B 2018-05-17 2 cc 3.0 B 2018-05-17 3 d 2 4.0 A 2018-05-17
  1. Puede verificar los tipos llamando a dtypes :

     df.dtypes a object b object c float64 d category e datetime64[ns] dtype: object
  2. Puede enumerar las columnas de cadenas utilizando el método items() y filtrando por object :

     > [ col for col, dt in df.dtypes.items() if dt == object] ['a', 'b']
  3. O puede usar select_dtypes para mostrar un marco de datos con solo las cadenas:

     df.select_dtypes(include=[object]) ab 0 a 1 1 bb 2 cc 3 d 2
over 4 years ago · Santiago Trujillo Relatório

0

Si es posible. usas dtype

 import pandas as pd import numpy as np df = pd.DataFrame({'a': ['a','b','c','d']}) if df['a'].dtype != np.number: print('yes') else: print('no')

También puede seleccionar sus columnas por tipo de d usando select_dtypes

 df_subset = df.select_dtypes(exclude=[np.number]) # Now apply you can label encode your df_subset
over 4 years ago · Santiago Trujillo Relatório

0

4 años desde la creación de esta pregunta y creo que todavía no hay una respuesta definitiva.

No creo que las cadenas hayan sido consideradas ciudadanos de primera clase en Pandas (incluso >= 1.0.0). Como ejemplo:

 import pandas as pd import datetime df = pd.DataFrame({ 'str': ['a', 'b', 'c', None], 'hete': [1, 2.0, datetime.datetime.utcnow(), None] }) string_series = df['str'] print(string_series.dtype) print(pd.api.types.is_string_dtype(string_series.dtype)) heterogenous_series = df['hete'] print(heterogenous_series.dtype) print(pd.api.types.is_string_dtype(heterogenous_series.dtype))

huellas dactilares

 object True object True

por lo tanto, aunque hete no contiene cadenas explícitas, se considera una serie de cadenas.

Después de leer la documentación , creo que la única forma de asegurarse de que una serie contenga solo cadenas es:

 def is_string_series(s : pd.Series): if isinstance(s.dtype, pd.StringDtype): # The series was explicitly created as a string series (Pandas>=1.0.0) return True elif s.dtype == 'object': # Object series, check each value return all((v is None) or isinstance(v, str) for v in s) else: return False
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