I think the k-prototype algorithm is what you are looking for. https://link.springer.com/article/10.1023/A:1009769707641