DataFrame.astype() / Series.astype()

Метод astype() приводит данные к указанному типу. Поддерживает скалярные типы NumPy, специализированные dtype Pandas (category, Int64 и т. д.) и словарь типов по столбцам.

Сигнатура

DataFrame.astype(dtype, copy=True, errors="raise")
Series.astype(dtype, copy=True, errors="raise")

Параметры

  • dtype — целевой тип или словарь {колонка: тип}.

  • copy — возвращать копию (по умолчанию True).

  • errors — "raise" (исключение при ошибке) или "ignore".

Возвращаемое значение

Объект того же класса с приведёнными типами.

Примеры

Пример 1. Series: int → float

import pandas as pd

s = pd.Series([1, 2, 3])
print(s.astype(float))
0    1.0
1    2.0
2    3.0
dtype: float64

Пример 2. Строки в числа

Чтение CSV с Arduino часто даёт строки:

import pandas as pd

s = pd.Series(["512", "1023", "256"])
print(s.astype(int))
0     512
1    1023
2     256
dtype: int64

Пример 3. Словарь типов для DataFrame

import pandas as pd

df = pd.DataFrame({"t": ["22.1", "22.5"], "n": ["1", "2"]})
df = df.astype({"t": "float64", "n": "int32"})
print(df.dtypes)
t    float64
n      int32
dtype: object

Пример 4. Категориальный тип

import pandas as pd

s = pd.Series(["A", "B", "A", "C", "B"])
print(s.astype("category").dtypes)
CategoricalDtype(categories=['A', 'B', 'C'], ordered=False, categories_dtype=object)

Пример 5. Nullable Integer

import pandas as pd
import numpy as np

s = pd.Series([1, 2, np.nan])
print(s.astype("Int64"))
0       1
1       2
2    <NA>
dtype: Int64

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.