Spec-Zone.ru › pandas 2

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API