当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.dataframe.DataFrame.astype用法及代码示例


用法:

DataFrame.astype(dtype)

将 pandas 对象转换为指定的 dtype dtype

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

可能存在与 Dask 版本的一些不一致之处。

参数

dtype数据类型,或列名的字典 -> 数据类型

使用 numpy.dtype 或 Python 类型将整个 pandas 对象转换为相同类型。或者,使用 {col: dtype, ...},其中 col 是列标签,dtype 是 numpy.dtype 或 Python 类型,将 DataFrame 的一个或多个列转换为 column-specific 类型。

copybool,默认 True(Dask 中不支持)

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

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

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

  • raise : 允许引发异常
  • ignore:抑制异常。出错时返回原始对象。

返回

casted与调用者相同的类型

注意

例子

创建一个 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, int64): [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]

请注意,使用 copy=False 并更改新 Pandas 对象上的数据可能会传播更改:

>>> s1 = pd.Series([1, 2])  
>>> s2 = s1.astype('int64', copy=False)  
>>> s2[0] = 10  
>>> s1  # note that s1[0] has changed too  
0    10
1     2
dtype: int64

创建一系列日期:

>>> 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]

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.dataframe.DataFrame.astype。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。