Eu tenho um dataframe com 12 colunas. Neles tenho muitas colunas flutuantes, que preciso verificar se os valores são aproximadamente iguais ou próximos o suficiente.
Dados de amostra:
df = pd.DataFrame({'id' : ['abc', 'pqr', 'xyz', 'cbz'],
'col1' : [0.0234, 0.001852, 4.123, 0.0012],
'col2' : [0.0235, 0.001851, 0.0123, 0.0013],
'col3' : [0.0233, 0.001849, 0.124, 0.0011]})
df
id col1 col2 col3
0 abc 0.0234 0.0235 0.0233
1 pqr 0.001852 0.001851 0.001849
2 xyz 4.123 0.0123 0.124
Posso usar np.isclose
e definir um limite aplicável ao meu caso, que seria 0,062. Mas alguém pode me informar como comparar se col1 é aproximadamente igual a col2 aproximadamente igual a col3. Se até 1 coluna não satisfizer a condição, o resultado deverá ser False
como no caso de id
xyz
.
Você pode comparar todas as colunas de transposição primeiro e testar se todos os valores são
True
s pornumpy.all
:IIUC, você pode usar:
Saída :
Lista abrangente usando
np.isclose
e combinando matrizes booleanas comnp.logical_and
: