Расширяя @Ryan G упомянутое использование pandas.DataFrame.astype(<type>)
метода, можно использовать errors=ignore
аргумент, чтобы преобразовать только те столбцы, которые не выдают ошибку, что значительно упрощает синтаксис. Очевидно, следует соблюдать осторожность при игнорировании ошибок, но для этой задачи это очень удобно.
>>> df = pd.DataFrame(np.random.rand(3, 4), columns=list('ABCD'))
>>> df *= 10
>>> print(df)
... A B C D
... 0 2.16861 8.34139 1.83434 6.91706
... 1 5.85938 9.71712 5.53371 4.26542
... 2 0.50112 4.06725 1.99795 4.75698
>>> df['E'] = list('XYZ')
>>> df.astype(int, errors='ignore')
>>> print(df)
... A B C D E
... 0 2 8 1 6 X
... 1 5 9 5 4 Y
... 2 0 4 1 4 Z
Из документов pandas.DataFrame.astype :
ошибки: {'повысить', 'игнорировать'}, по умолчанию 'поднять'
Контроль возникновения исключений для недействительных данных для предоставленного dtype.
- поднять: разрешить возбудить исключения
- игнорировать: исключать исключения. При ошибке вернуть исходный объект
Новое в версии 0.20.0.
df.col = df.col.astype(int)