Converta todo o quadro de dados de minúsculas para maiúsculas com o Pandas

Eu tenho um quadro de dados como o exibido abaixo:

# Create an example dataframe about a fictional army
raw_data = {'regiment': ['Nighthawks', 'Nighthawks', 'Nighthawks', 'Nighthawks'],
            'company': ['1st', '1st', '2nd', '2nd'],
            'deaths': ['kkk', 52, '25', 616],
            'battles': [5, '42', 2, 2],
            'size': ['l', 'll', 'l', 'm']}
df = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'deaths', 'battles', 'size'])

Meu objetivo é transformar todas as seqüências de caracteres dentro do quadro de dados em maiúsculas para que fique assim:

Aviso: todos os tipos de dados são objetos e não devem ser alterados; a saída deve conter todos os objetos. Quero evitar converter cada coluna uma por uma ... Gostaria de fazê-lo geralmente em todo o quadro de dados, possivelmente.

O que eu tentei até agora é fazer isso, mas sem sucesso

df.str.upper()