Pode utilizar os seguintes métodos para agrupar os valores de várias colunas de um DataFrame pandas numa única coluna:

Método 1: Agrupar valores por ordem de coluna predefinida

 df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0] 

Método 2: Coalescer valores usando uma ordem de coluna específica

 df[' coalesce '] = df[[' col3 ', ' col1 ', ' col2 ']]. bfill (axis= 1 ). iloc [:, 0] 

Os exemplos seguintes mostram como utilizar cada método na prática com o seguinte DataFrame do pandas:

 import pandas as pd import numpy as np #criar DataFrame df = pd. DataFrame ({' points ': [np.nan, np.nan, 19, np.nan, 14], ' assists ': [np.nan, 7, 7, 9, np.nan], ' rebounds ': [3, 4, np.nan, np.nan, 6]}) #visualizar DataFrame print (df) points assists rebounds 0 NaN NaN 3.0 1 NaN 7.0 4.0 2 19.0 7.0 NaN 3 NaN 9.0 NaN 4 14.0 NaN 6.0 

Método 1: Agrupar valores por ordem de coluna predefinida

O código a seguir mostra como agrupar os valores nas colunas de pontos, assistências e rebotes em uma coluna, usando o primeiro valor não nulo nas três colunas como o valor agrupado:

 #criar uma nova coluna que contém o primeiro valor não nulo de três colunas existentes df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0] #visualizar DataFrame atualizado print (df) pontos assists rebounds coalesce 0 NaN NaN 3.0 3.0 1 NaN 7.0 4.0 7.0 2 19.0 7.0 NaN 19.0 3 NaN 9.0 NaN 9.0 4 14.0 NaN 6.0 14.0 

Eis como o valor no coalescer coluna foi selecionada:

  • Primeira linha: O primeiro valor não nulo foi 3.0 .
  • Segunda linha: O primeiro valor não nulo foi 7.0 .
  • Terceira linha: O primeiro valor não nulo foi 19.0 .
  • Quarta linha: O primeiro valor não nulo foi 9.0 .
  • Quinta linha: O primeiro valor não nulo foi 14.0 .

Método 2: Coalescer valores usando uma ordem de coluna específica

O código seguinte mostra como combinar os valores nas três colunas, analisando as colunas pela seguinte ordem: assistências, ressaltos, pontos.

 #coalesce os valores por uma ordem específica das colunas df[' coalesce '] = df[[[' assistências ', ' ressaltos ', ' pontos ']]. bfill (axis= 1 ). iloc [:, 0] #view updated DataFrame print (df) points assists rebounds coalesce 0 NaN NaN 3.0 3.0 1 NaN 7.0 4.0 7.0 2 19.0 7.0 NaN 7.0 3 NaN 9.0 NaN 9.0 4 14.0 NaN 6.0 6.0 

Eis a lógica que foi utilizada para decidir qual o valor a colocar no coalescer coluna:

  • Se o valor no campo assistências não é nula, então utiliza esse valor.
  • Caso contrário, se o valor no ressaltos não é nula, então utiliza esse valor.
  • Caso contrário, se o valor no pontos não é nula, então utiliza esse valor.

Nota : Pode encontrar a documentação completa para o bfill() função aqui.