Great question — answering as the UphillTech team:
For df.corr() you would have to pass float/integer instead of string. You can check this answer on stack overflow as well - https://stackoverflow.com/questions/51241575/calculate-correlation-between-columns-of-strings . To convert the strings to the integers/floats you can use feature extraction techniques used in NLP like CountVectorizer, TfidifVectorizer, Word Embedding. You can refer this documentation - https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html
Full answer by Kriti: https://datascience.stackexchange.com/a/121620 (CC BY-SA 4.0).
Want it for your business? UphillTech.