pandas.DataFrame.convert_dtypes
- DataFrame.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True, dtype_backend='numpy_nullable')[source]
-
Преобразовать столбцы к наиболее подходящим типам данных, поддерживающим
pd.NA.- Параметры:
-
- infer_objects:bool, по умолчанию True
-
Необходимо ли преобразовывать типы данных object к наилучшим возможным типам.
- convert_string:bool, по умолчанию True
-
Необходимо ли преобразовывать типы данных object к
StringDtype(). - convert_integer:bool, по умолчанию True
-
Можно ли, если это возможно, преобразовать в целочисленные расширенные типы.
- convert_boolean:bool, по умолчанию True
-
Необходимо ли преобразовывать типы данных object к
BooleanDtypes(). - convert_floating:bool, по умолчанию True
-
Можно ли, если это возможно, преобразовать в плавающие расширенные типы. Если convert_integer также True, предпочтение будет отдаваться целочисленным типам, если числа с плавающей точкой можно надежно привести к целым числам.
- dtype_backend:{‘numpy_nullable’, ‘pyarrow’}, по умолчанию ‘numpy_nullable’
-
Обработка типа данных, применяемая к результирующей таблице
DataFrame(пока экспериментальная). Поведение следующее:"numpy_nullable": возвращает таблицуDataFrameс поддержкой nullable-типов данных (по умолчанию)."pyarrow": возвращает таблицуArrowDtypeс поддержкой nullable-типов данных, основанную на pyarrow.
В версии 2.0.
- Возвращает:
-
- Series или DataFrame
-
Копия входного объекта с новым типом данных.
См. также
infer_objectsОпределение типов данных объектов.
to_datetimeПреобразование аргумента в дату.
to_timedeltaПреобразование аргумента во временной интервал.
to_numericПреобразование аргумента в числовой тип.
Примечания
По умолчанию
convert_dtypesбудет пытаться преобразовать Series (или каждый Series в DataFrame) к типам данных, которые поддерживаютpd.NA. Используя параметрыconvert_string,convert_integer,convert_booleanиconvert_floating, можно отключить отдельные преобразования кStringDtype, целочисленным расширенным типам,BooleanDtypeили плавающим расширенным типам соответственно.Для столбцов типа object, если
infer_objectsравноTrue, используйте правила вывода, как при обычном создании Series/DataFrame. Затем, если возможно, преобразуйте вStringDtype,BooleanDtypeили соответствующий целочисленный или плавающий расширенный тип, в противном случае оставьте какobject.Если тип данных является целочисленным, преобразуйте в соответствующий целочисленный расширенный тип.
Если тип данных является числовым и состоит только из целых чисел, преобразуйте в соответствующий целочисленный расширенный тип. В противном случае преобразуйте в соответствующий плавающий расширенный тип.
В будущем, по мере добавления новых типов данных, поддерживающих
pd.NA, результаты этого метода будут изменены для поддержки этих новых типов данных.Примеры
>>> df = pd.DataFrame( ... { ... "a": pd.Series([1, 2, 3], dtype=np.dtype("int32")), ... "b": pd.Series(["x", "y", "z"], dtype=np.dtype("O")), ... "c": pd.Series([True, False, np.nan], dtype=np.dtype("O")), ... "d": pd.Series(["h", "i", np.nan], dtype=np.dtype("O")), ... "e": pd.Series([10, np.nan, 20], dtype=np.dtype("float")), ... "f": pd.Series([np.nan, 100.5, 200], dtype=np.dtype("float")), ... } ... )Начните с DataFrame с типами данных по умолчанию.
>>> df a b c d e f 0 1 x True h 10.0 NaN 1 2 y False i NaN 100.5 2 3 z NaN NaN 20.0 200.0
>>> df.dtypes a int32 b object c object d object e float64 f float64 dtype: object
Преобразуйте DataFrame, используя наилучшие возможные типы данных.
>>> dfn = df.convert_dtypes() >>> dfn a b c d e f 0 1 x True h 10 <NA> 1 2 y False i <NA> 100.5 2 3 z <NA> <NA> 20 200.0
>>> dfn.dtypes a Int32 b string[python] c boolean d string[python] e Int64 f Float64 dtype: object
Начните с Series строк и пропущенных данных, представленных
np.nan.>>> s = pd.Series(["a", "b", np.nan]) >>> s 0 a 1 b 2 NaN dtype: object
Получите Series с типом данных
StringDtype.>>> s.convert_dtypes() 0 a 1 b 2 <NA> dtype: string
© 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.convert_dtypes.html