Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Substituir valores por A, B e C (Erro)

Ao tentar aplicar a função: df1[df1 > 0] = 'A' df1 (E as outras envolvendo df2 e df3) me vem o seguinte erro:

TypeError Traceback (most recent call last) in ----> 1 df1[df1 > 0] = 'A' 2 df1

~\anaconda3\lib\site-packages\pandas\core\ops_init__.py in f(self, other) 786 # straight boolean comparisons we want to allow all columns 787 # (regardless of dtype to pass thru) See #4537 for discussion. --> 788 newdata = dispatch_to_series(self, other, op) 789 return self.constructresult(new_data) 790

~\anaconda3\lib\site-packages\pandas\core\ops_init__.py in dispatchto_series(left, right, func, str_rep, axis) 376 # Get the appropriate array-op to apply to each block's values. 377 array_op = get_array_op(func, str_rep=str_rep) --> 378 bm = left.data.apply(arrayop, right=right) 379 return type(left)(bm) 380

~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in apply(self, f, filter, kwargs) 438 439 if callable(f): --> 440 applied = b.apply(f, **kwargs) 441 else: 442 applied = getattr(b, f)(kwargs)

~\anaconda3\lib\site-packages\pandas\core\internals\blocks.py in apply(self, func, *kwargs) 388 """ 389 with np.errstate(all="ignore"): --> 390 result = func(self.values, *kwargs) 391 392 if is_extension_array_dtype(result) and result.ndim > 1:

~\anaconda3\lib\site-packages\pandas\core\ops\array_ops.py in comparison_op(left, right, op) 245 246 elif is_object_dtype(lvalues.dtype): --> 247 res_values = comp_method_OBJECT_ARRAY(op, lvalues, rvalues) 248 249 else:

~\anaconda3\lib\site-packages\pandas\core\ops\array_ops.py in comp_method_OBJECT_ARRAY(op, x, y) 55 result = libops.vec_compare(x.ravel(), y, op) 56 else: ---> 57 result = libops.scalar_compare(x.ravel(), y, op) 58 return result.reshape(x.shape) 59

pandas_libs\ops.pyx in pandas.libs.ops.scalarcompare()

TypeError: '>' not supported between instances of 'str' and 'int'

4 respostas
solução!

Olá Eduardo tudo certinho?

Eu fiz o teste no Colaboratory. Seguindo os passos diretamente do vídeo não apresenta erro. Porém, quando eu utilizo a solução que eu irei sugerir a você e depois retorno da forma que estava ele apresenta seu erro.

Seguinte, coloque aspas simples no zero em df1[df1 > '0'] = 'A' .

'0'

Isso vai resolver por que ali no erro você consegue visualizar TypeError: '>' not supported between instances of 'str' and 'int'. Que informa um erro na operação por um ser do tipo String e o outro Integer.

Assim todos elementos virarão String e você poderá continuar sem problemas =)

Espero ter te ajudado e qualquer dúvida é só retornar aqui!

Funcionou Victor, muito obrigado!!!

Excelente Eduardo! Gostaria de solicitar que selecione a resposta como solução, assim os colegas do fórum poderão encontrar a dúvida respondida mais facilmente caso passem por esse problema também!

Obrigado e Bons estudos!

Feito, obrigado!