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

179
Visualizações
¿Cómo sacar filas de un marco de datos?

Encontré la documentación para pandas.DataFrame.pop , pero después de probarlo y examinar el código fuente , parece que no hace lo que quiero.

Si hago un marco de datos como este:

 import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10,6)) # Make a few areas have NaN values df.iloc[1:3,1] = np.nan df.iloc[5,3] = np.nan df.iloc[7:9,5] = np.nan >>> df 0 1 2 3 4 5 0 0.772762 -0.442657 1.245988 1.102018 -0.740836 1.685598 1 -0.387922 NaN -1.215723 -0.106875 0.499110 0.338759 2 0.567631 NaN -0.353032 -0.099011 -0.698925 -1.348966 3 1.320849 1.084405 -1.296177 0.681111 -1.941855 -0.950346 4 -0.026818 -1.933629 -0.693964 1.116673 0.392217 1.280808 5 -1.249192 -0.035932 -1.330916 NaN -0.135720 -0.506016 6 0.406344 1.416579 0.122019 0.648851 -0.305359 -1.253580 7 -0.092440 -0.243593 0.468463 -1.689485 0.667804 NaN 8 -0.110819 -0.627777 -0.302116 0.630068 2.567923 NaN 9 1.884069 -0.393420 -0.950275 0.151182 -1.122764 0.502117

Si quiero eliminar las filas seleccionadas y asignarlas a un objeto separado en un solo paso, me gustaría un comportamiento pop como este:

 # rows in column 5 which have NaN values >>> df[df[5].isnull()].index Int64Index([7, 8], dtype='int64') # remove them from the dataframe, assign them to a separate object >>> nan_rows = df.pop(df[df[5].isnull()].index)

Sin embargo, esto no parece ser compatible. En cambio, parece que me veo obligado a hacer esto en dos pasos separados, lo que parece un poco poco elegante.

 # get the NaN rows >>> nan_rows = df[df[5].isnull()] >>> nan_rows 0 1 2 3 4 5 7 -0.092440 -0.243593 0.468463 -1.689485 0.667804 NaN 8 -0.110819 -0.627777 -0.302116 0.630068 2.567923 NaN # remove from orignal df >>> df = df.drop(nan_rows.index) >>> df 0 1 2 3 4 5 0 0.772762 -0.442657 1.245988 1.102018 -0.740836 1.685598 1 -0.387922 NaN -1.215723 -0.106875 0.499110 0.338759 2 0.567631 NaN -0.353032 -0.099011 -0.698925 -1.348966 3 1.320849 1.084405 -1.296177 0.681111 -1.941855 -0.950346 4 -0.026818 -1.933629 -0.693964 1.116673 0.392217 1.280808 5 -1.249192 -0.035932 -1.330916 NaN -0.135720 -0.506016 6 0.406344 1.416579 0.122019 0.648851 -0.305359 -1.253580 9 1.884069 -0.393420 -0.950275 0.151182 -1.122764 0.502117

¿Hay un método de un solo paso incorporado? ¿O es así como 'se supone' que debes hacerlo?

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

0

Como puede hacer estallar columnas, puede tomar la transposición del marco de datos y hacer estallar sus columnas, es decir. las filas del df original así. Aquí está el df original.

 import numpy as np df = pd.DataFrame(np.random.randint(0, 10, size=(3, 3)), columns = ['a', 'b', 'c']) print(df) abc 0 4 9 4 1 5 5 8 2 5 7 4

Luego toma la transposición y extrae la columna 0, que es la fila 0 del df original.

 df_t = df.T popped_row = df_t.pop(0)

Ahora tienes la fila emergente

 print(popped_row) a 4 b 9 c 4 Name: 0, dtype: int32

Y luego tienes el marco de datos original sin la primera fila.

 df = df_t.T print(df) abc 1 5 5 8 2 5 7 4
over 4 years ago · Santiago Trujillo Relatório

0

código fuente emergente:

 def pop(self, item): """ Return item and drop from frame. Raise KeyError if not found. """ result = self[item] del self[item] try: result._reset_cacher() except AttributeError: pass return result File: c:\python\lib\site-packages\pandas\core\generic.py

del definitivamente no funcionará si item no es un nombre de columna simple. Pase un nombre de columna simple o hágalo en dos pasos.

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