Pandas DataFrame.astype()函式

Minahil Noor 2023年1月30日 2021年1月22日
  1. pandas.DataFrame.astype() 語法
  2. 示例程式碼:DataFrame.astype() 方法改變一列資料型別
  3. 示例程式碼:DataFrame.astype() 方法改變 DataFrame 所有列的資料型別
  4. 示例程式碼:DataFrame.astype() 方法改變資料型別時有異常的情況
Pandas DataFrame.astype()函式

Python Pandas DataFrame.astype() 函式將物件的資料型別改變為指定的資料型別。

pandas.DataFrame.astype() 語法

DataFrame.astype(dtype,
                 copy=True,
                 errors='raise')

引數

dtype 我們要分配給物件的資料型別。
copy 布林引數。當 True 時返回一個副本。
errors 它控制對所提供資料型別的無效資料引發異常。它有兩個選項。
raise:允許引發異常。
ignore:抑制異常。如果存在錯誤,那麼它將返回原始物件。

返回物件

它返回帶有資料型別的 DataFrame。

示例程式碼:DataFrame.astype() 方法改變一列資料型別

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})

print("The Original Data Types of the Data frame are: \n")
print(dataframe.dtypes)

dataframe1 = dataframe.astype({'Attendance': 'int32'}).dtypes
print("The Modified Data Types of the Data frame are: \n")
print(dataframe1)

輸出:

The Original Data Types of the Data frame are: 

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
The Modified Data Types of the Data frame are: 

Attendance         int32
Name              object
Obtained Marks     int64
dtype: object

該函式返回了轉換的資料型別。我們使用 dtypes() 函式來顯示 DataFrame 中各列的資料型別。

示例程式碼:DataFrame.astype() 方法改變 DataFrame 所有列的資料型別

我們將嘗試改變給定 DataFrame 的資料型別。

import pandas as pd
dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})
print("The Original Data Types of the Data frame are: \n")
print(dataframe.dtypes)

dataframe1 = dataframe.astype('object').dtypes
print("The Modified Data Types of the Data frame are: \n")
print(dataframe1)

輸出:

The Original Data Types of the Data frame are: 

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
The Modified Data Types of the Data frame are: 

Attendance        object
Name              object
Obtained Marks    object
dtype: object

函式返回了修改後的 DataFrame,它已經將所有列的資料型別改為 object

示例程式碼:DataFrame.astype() 方法改變資料型別時有異常的情況

現在我們將資料型別 object 設定為 int32。函式將忽略異常,因為我們將傳遞引數 errors= 'ignore'

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: 100, 2: 80,3: 78,4: 95},
                        'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                        'Obtained Marks': {0: 90, 1: 75, 2: 82, 3: 64, 4: 45}})

print("The Original Data Types of the Data frame are: \n")
print(dataframe.dtypes)

dataframe1 = dataframe.astype('int32', errors='ignore').dtypes
print("The Modified Data Types of the Data frame are: \n")
print(dataframe1)

輸出:

The Original Data Types of the Data frame are: 

Attendance         int64
Name              object
Obtained Marks     int64
dtype: object
The Modified Data Types of the Data frame are: 

Attendance         int32
Name              object
Obtained Marks     int32
dtype: object

請注意,函式沒有引發任何異常。它忽略了這個錯誤,因為我們將 object 轉為 int32。它只是沒有改變 Name 列的資料型別。

相關文章 - Pandas DataFrame