用法:
DataFrame.astype(dtype, copy=True, errors='raise')
将 pandas 对象转换为指定的 dtype
dtype
。- dtype:数据类型,或列名的字典 -> 数据类型
使用 numpy.dtype 或 Python 类型将整个 pandas 对象转换为相同类型。或者,使用 {col:dtype, ...},其中 col 是列标签,dtype 是 numpy.dtype 或 Python 类型,将 DataFrame 的一个或多个列转换为 column-specific 类型。
- copy:布尔值,默认为真
当
copy=True
时返回一个副本(非常小心地将copy=False
设置为对值的更改,然后可能会传播到其他 pandas 对象)。- errors:{‘raise’, ‘ignore’},默认 ‘raise’
控制对提供的 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]
相关用法
- Python pandas.DataFrame.assign用法及代码示例
- Python pandas.DataFrame.asfreq用法及代码示例
- Python pandas.DataFrame.asof用法及代码示例
- Python pandas.DataFrame.apply用法及代码示例
- Python pandas.DataFrame.add_prefix用法及代码示例
- Python pandas.DataFrame.add用法及代码示例
- Python pandas.DataFrame.all用法及代码示例
- Python pandas.DataFrame.at_time用法及代码示例
- Python pandas.DataFrame.append用法及代码示例
- Python pandas.DataFrame.at用法及代码示例
- Python pandas.DataFrame.agg用法及代码示例
- Python pandas.DataFrame.add_suffix用法及代码示例
- Python pandas.DataFrame.applymap用法及代码示例
- Python pandas.DataFrame.aggregate用法及代码示例
- Python pandas.DataFrame.axes用法及代码示例
- Python pandas.DataFrame.abs用法及代码示例
- Python pandas.DataFrame.any用法及代码示例
- Python pandas.DataFrame.align用法及代码示例
- Python pandas.DataFrame.ewm用法及代码示例
- Python pandas.DataFrame.dot用法及代码示例
注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.astype。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。