dask_expr._collection.Series.astype

dask_expr._collection.Series.astype

Series.astype(dtypes)

将 pandas 对象转换为指定的数据类型 dtype

此文档字符串是从 pandas.core.frame.DataFrame.astype 复制而来的。

Dask 版本可能存在一些不一致性。

参数
dtypestr, 数据类型, Series 或 列名 -> 数据类型的映射

使用 str、numpy.dtype、pandas.ExtensionDtype 或 Python 类型将整个 pandas 对象转换为相同类型。或者,使用映射,例如 {col: dtype, …},其中 col 是列标签,dtype 是 numpy.dtype 或 Python 类型,将一个或多个 DataFrame 的列转换为列特定的类型。

复制bool, 默认 True (Dask 不支持)

copy=True 时返回一个副本(设置 copy=False 时要非常小心,因为对值的更改可能会传播到其他 pandas 对象)。

备注

copy 关键字将在 pandas 3.0 中改变行为。写时复制 将被默认启用,这意味着所有带有 copy 关键字的方法将使用延迟复制机制来推迟复制并忽略 copy 关键字。copy 关键字将在未来版本的 pandas 中被移除。

您已经可以通过启用写时复制 pd.options.mode.copy_on_write = True 来获得未来的行为和改进。

错误{‘raise’, ‘ignore’}, 默认 ‘raise’ (Dask 不支持)

控制对提供的 dtype 的无效数据引发异常。

  • raise : 允许异常被抛出

  • ignore : 抑制异常。在错误时返回原始对象。

返回
与调用者相同类型

参见

to_datetime

将参数转换为日期时间。

to_timedelta

将参数转换为 timedelta。

to_numeric

将参数转换为数值类型。

numpy.ndarray.astype

将 numpy 数组转换为指定类型。

注释

在 2.0.0 版更改: 使用 astype 将时区无感知的 dtype 转换为时区感知的 dtype 将引发异常。请改用 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]