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.