Olá Everton,
Você pode usar qualquer tipo de variável para ajustar um modelo aos dados. Mas existe um ponto de atenção aqui. Os algoritmos de Machine Learning da biblioteca scikit learning só aceitam dados numéricos (Pelo menos todos os que eu conheço).
Dessa forma, antes de utilizar informações do tipo categórico (seu exemplo da variável do tipo "som do animal") é importante que se passe por uma etapa de pré-processamento de dados, na qual você irá codificar essas variáveis, transformando-as em variáveis do tipo numérica.
Você pode procurar mais sobre esse assunto, buscando por features engineering no google.
Com relação à performance. O tempo de processamento depende da quantidade de linhas e colunas do seu DataFrame. Uma coisa que também aumenta muito o tempo é o tipo de algoritmo. As Support Vector Machines, por exemplo, demoram muito para serem ajustadas em conjunto de dados com muitas linhas.
Abs :)