python: converte dados numéricos no dataframe do pandas para flutuar na presença de strings

Eu tenho um dataframe pandas com uma coluna 'cap'. Esta coluna consiste principalmente em floats, mas possui algumas strings, por exemplo, no índice 2.

df =
    cap
0    5.2
1    na
2    2.2
3    7.6
4    7.5
5    3.0
...

Eu importo meus dados de um arquivo csv assim:

df = DataFrame(pd.read_csv(myfile.file))

Infelizmente, quando faço isso, a coluna 'cap' é importada inteiramente como strings. Eu gostaria que floats fossem identificados como floats e strings como strings. Tentando converter isso usando:

df['cap'] = df['cap'].astype(float)

gera um erro:

could not convert string to float: na

Existe alguma maneira de fazer todos os números em carros alegóricos, mas manter o 'na' como uma string?

questionAnswers(4)

yourAnswerToTheQuestion