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

321
Visualizações
los pandas encuentran el punto de inicio y parada de valores no nulos

Me gustaría encontrar los puntos de inicio y finalización de una columna y marcarlos como se muestra a continuación:

valor bandera
Yaya Yaya
Yaya Yaya
1 comienzo
2 Yaya
1 Yaya
3 Yaya
2 detener
Yaya Yaya
1 comienzo
2 detener
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

  • el start ocurre cuando el valor actual no es notnull y el valor anterior es isnull
  • la stop ocurre cuando el valor actual no es notnull y el siguiente valor isnull

Genere estas condiciones usando shift y asigne usando loc :

 start = df.value.notnull() & df.value.shift().isnull() stop = df.value.notnull() & df.value.shift(-1).isnull() df.loc[start, 'flag'] = 'start' df.loc[stop, 'flag'] = 'stop' # value flag # 0 NaN NaN # 1 NaN NaN # 2 1.0 start # 3 2.0 NaN # 4 1.0 NaN # 5 3.0 NaN # 6 2.0 stop # 7 NaN NaN # 8 1.0 start # 9 2.0 stop

Alternativamente, asigne usando mask :

 df['flag'] = df['flag'].mask(start, 'start') df['flag'] = df['flag'].mask(stop, 'stop')
over 4 years ago · Santiago Trujillo Relatório

0

Aquí recorrí las filas y usé una bandera para indicar si estábamos comenzando o no.

 start_flag = 0 for index, row in df.iterrows(): if row['val'].isnull(): df.loc[index, 'flag'] = "NaN" start_flag = 0 else: if start_flag == 0: df.loc[index, 'flag'] = "start" start_flag = 1 else: if (index < df.shape[0]-1 and df.loc[index+1, 'val'].isnull()) or index == df.shape[0]-1: df.loc[index, 'flag'] = "stop"
over 4 years ago · Santiago Trujillo Relatório

0

Esto es lo que necesitas:

 # Auxiliar columns to detect start and end df['Past'] = df['Value'].shift(-1) df['Future'] = df['Value'].shift(1) # Auxiliar function to complete new column def Find_start_stop_Null(row): flag = np.nan if ((not pd.isnull(row['Value'])) and (pd.isnull(row['Future']))): flag = 'start' elif ((not pd.isnull(row['Value'])) and (pd.isnull(row['Past']))): flag = 'stop' return flag df['flag'] = df.apply(lambda row: Find_start_stop_Null(row), axis=1) # Drop unnecessary columns df = df.drop('Past', axis=1) df = df.drop('Future', axis=1)
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