Como comparar cada célula em uma coluna com um valor específico em pandas?

Cecilia

Eu tenho um dataframe como este, quero conseguir isso:

se o sinal de A é igual ao sinal de B, obtenha uma nova coluna C = min (3, | A |); se o sinal de A for diferente do sinal de B, C = min (3, B); se os valores de A e B forem zero, C = A

Type subType  A       B     C     
 X    a       -1      4     3   
 X    a       5       9     3
 X    a       5       9     3
 X    b       1       4     1   
 X    b       3       5    ...
 X    b       5       0
 Y    a       -1      1         
 Y    a       3       2  
 Y    a       -5      3
 Y    b       1       4        
 Y    b       3       5 
 Y    b       5      -2

Eu tentei :

if df["A"] * df["B"] > 0:
    df["C"] = (3, abs(df["A"]).min(axis=1)

Deu-me um erro, parece que não consigo comparar um valor '3' diretamente com uma coluna, alguma sugestão?

Acompanhamento: e se a fórmula for mais complexa C = A + min(3, |A|) *B?

Jezreel

Porque se os valores para A e B são zero, significa usar mínimo entre (3, abs (0)) o que é sempre 0solução deve ser simplificado com numpy.wheree numpy.minimum:

#compare signs
m = np.sign(df["A"]) == np.sign(df["B"])
#alternative
#m = (df["A"] * df["B"]) >= 0
df['C'] = np.where(m, np.minimum(3, df.A.abs()), np.minimum(3, df.B))
print (df)
   Type subType  A  B  C
0     X       a -1  4  3
1     X       a  5  9  3
2     X       a  5  9  3
3     X       b  1  4  1
4     X       b  3  5  3
5     X       b  5  0  0
6     Y       a -1  1  1
7     Y       a  3  2  3
8     Y       a -5  3  3
9     Y       b  1  4  1
10    Y       b  3  5  3
11    Y       b  5 -2 -2

EDITAR: Se precisar de mais condição em pandas / numpy, é possível usar np.wherefunções múltiplas numpy.select:

m1 = np.sign(df.A) == np.sign(df.B)
m2 = np.sign(df.A) == np.sign(df.C)

s1 = df.A + np.minimum(3, df.A.abs()) * df.B
s2 = df.C + np.minimum(3, df.A.abs()) * df.B

df['D'] = np.select([m1, m2], [s1, s2], default=df.A)
print (df)
   Type subType  A  B  C   D
0     X       a -1  4  3  -1
1     X       a  5  9  3  32
2     X       a  5  9  3  32
3     X       b  1  4  1   5
4     X       b  3  5  3  18
5     X       b  5  0  0   5
6     Y       a -1  1  1  -1
7     Y       a  3  2  3   9
8     Y       a -5  3  3  -5
9     Y       b  1  4  1   5
10    Y       b  3  5  3  18
11    Y       b  5 -2 -2   5

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como você define uma coluna específica com um valor específico para um novo valor em um Pandas DF?

Como faço para definir um intervalo em uma coluna com uma primeira célula conhecida e terminando logo antes de uma célula de valor específico

Como obter uma célula selecionada por um valor de coluna específico em selênio

Como agrupar linhas com base em um valor específico em uma linha e outra coluna em pandas?

Como converter um DataFrame que só tem valor único em uma coluna com base em uma coluna em valor específico em Pandas

Como posso comparar uma coluna em um dataframe por um valor em uma coluna com o mesmo nome / local em um segundo dataframe no Pandas?

Como posso comparar um valor de tempo com todos os valores de tempo em uma coluna em pandas?

Bloco de anotações do Spark: como posso filtrar linhas com base em um valor de coluna em que cada célula da coluna é uma matriz de strings?

Pandas: como selecionar linhas em um quadro de dados com base na condição de um valor específico em uma coluna específica

Como escrever um loop que localiza um valor específico em uma coluna, se encontrar um, escreva uma fórmula em uma célula adjacente e continue

Como comparar uma coluna com um ID de célula em vez de um valor usando a opção de formatação condicional do Google Sheets?

Como inserir automaticamente uma linha copiada após um valor específico em uma célula com VBA

Como analisar um valor específico de cada célula em um banco de dados?

Como analisar um valor específico de cada célula em um banco de dados?

Como copiar linhas com um valor específico em uma coluna para outra planilha?

Como encaminhar/preencher um valor específico em uma coluna/série Pandas DataFrame?

Como encontrar um valor específico de uma coluna no Data Frame em Python usando pandas

crie uma nova coluna com base em ocorrências cumulativas de um valor específico em outra coluna pandas

Como mesclar várias linhas em uma linha com base em uma coluna com valor específico no Pandas

No Pandas, como posso duplicar todas as linhas com um valor específico em uma coluna, alterando o valor dessa coluna na duplicata?

como concatenar uma coluna para outra coluna quando há um valor específico na coluna em pandas

Como destacar todas as células com o mesmo valor em uma coluna quando um texto específico está em outra coluna

Falha ao converter uma coluna de pandas com matriz numpy em cada célula em um tensor de tensorflow

Como acrescentar uma string específica de acordo com cada valor em uma coluna string pandas dataframe?

Substitua a coluna inteira por um valor específico em cada grupo em Pandas

Dataframe do Pandas como atribuir valor a uma coluna com base em um grupo específico e o valor da linha anterior

Como posso atribuir uma cor a um valor específico em uma coluna de um dataframe do pandas?

como iterar em cada coluna e cada célula em um dataframe do pandas

Em R, como coletar outros membros de uma coluna com base no valor de um membro específico nessa coluna?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo