pandas.DataFrame.astype
- DataFrame.astype(dtype, copy=None, errors='raise')[source]
-
Преобразование объекта pandas к указанному типу данных
dtype.- Параметры:
-
- dtype:str, тип данных, Series или отображение имени столбца -> тип данных
-
Используйте строку, тип данных numpy, pandas.ExtensionDtype или Python тип для преобразования всего объекта pandas к одному типу. В качестве альтернативы, используйте отображение, например, {col: dtype, …}, где col — имя столбца, а dtype — тип данных numpy или Python, для преобразования одного или нескольких столбцов DataFrame к столбце-специфическим типам.
- copy:bool, по умолчанию True
-
Возвращает копию, когда
copy=True(будьте очень осторожны при установкеcopy=False, так как изменения значений затем могут распространиться на другие объекты pandas).Примечание
Ключевое слово copy изменит поведение в pandas 3.0. Copy-on-Write будет включено по умолчанию, что означает, что все методы с ключевым словом copy будут использовать механизм ленивой копии для отсрочки копии и игнорирования ключевого слова copy. Ключевое слово copy будет удалено в будущей версии pandas.
Вы уже можете получить будущее поведение и улучшения, включив копирование при записи
pd.options.mode.copy_on_write = True - errors:{‘raise’, ‘ignore’}, по умолчанию ‘raise’
-
Управление повышением исключений при некорректных данных для предоставленного типа данных.
raise: разрешить повышение исключенийignore: подавить исключения. В случае ошибки вернуть исходный объект.
- Возвращает:
-
- тип, совпадающий с вызывающим объектом
См. также
to_datetime-
Преобразовать аргумент в datetime.
to_timedelta-
Преобразовать аргумент в timedelta.
to_numeric-
Преобразовать аргумент в числовой тип.
numpy.ndarray.astype-
Преобразовать массив numpy в указанный тип.
Примечания
Изменено в версии 2.0.0: Использование
astypeдля преобразования из типа без часового пояса в тип с часовым поясом приведет к ошибке. ИспользуйтеSeries.dt.tz_localize()вместо этого.Примеры
Создайте DataFrame:
>>> d = {'col1': [1, 2], 'col2': [3, 4]} >>> df = pd.DataFrame(data=d) >>> df.dtypes col1 int64 col2 int64 dtype: objectПреобразуйте все столбцы в int32:
>>> df.astype('int32').dtypes col1 int32 col2 int32 dtype: objectПреобразуйте столбец col1 в int32 с помощью словаря:
>>> df.astype({'col1': 'int32'}).dtypes col1 int32 col2 int64 dtype: objectСоздайте серию:
>>> ser = pd.Series([1, 2], dtype='int32') >>> ser 0 1 1 2 dtype: int32 >>> ser.astype('int64') 0 1 1 2 dtype: int64Преобразуйте в категориальный тип:
>>> ser.astype('category') 0 1 1 2 dtype: category Categories (2, int32): [1, 2]Преобразуйте в упорядоченный категориальный тип с пользовательским порядком:
>>> from pandas.api.types import CategoricalDtype >>> cat_dtype = CategoricalDtype( ... categories=[2, 1], ordered=True) >>> ser.astype(cat_dtype) 0 1 1 2 dtype: category Categories (2, int64): [2 < 1]
Создайте серию дат:
>>> ser_date = pd.Series(pd.date_range('20200101', periods=3)) >>> ser_date 0 2020-01-01 1 2020-01-02 2 2020-01-03 dtype: datetime64[ns]
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.DataFrame.astype.html