#python #pandas #dataframe #casting
#python #pandas #фрейм данных #Кастинг
Вопрос:
Существует довольно много вопросов, связанных с преобразованием определенного столбца или всех столбцов, но не нескольких конкретных столбцов, где dtype
есть что-то конкретное. Теперь, если я получил данные с некоторыми столбцами, равными object
s, я хотел бы видеть, как эти конкретные столбцы преобразуются в строки.
Я думаю, что в настоящее время я делаю что-то вроде:
for column in calls.columns:
if calls[column].dtype == 'object':
calls[column] = calls[column].astype(str)
Но я ищу более питонический способ.
Ответ №1:
вы можете использовать следующий код:
calls[calls.select_dtypes(include='object').columns] = calls.select_dtypes(include='object').astype(dtype='category')
Ответ №2:
В зависимости от имеющейся у вас версии pandas, «object» — это строковый тип.
Тем не менее, вы могли бы сделать это:
df.astype({col: str for col in df.select_dtypes('object').columns})
Или эквивалент:
df.astype({col: str for col, dtype in df.dtypes.items() if dtype=='object'})