當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python dask.dataframe.Series.astype用法及代碼示例


用法:

Series.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.Series.astype。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。