Nhiều khi chúng ta có thể cần chuyển đổi kiểu dữ liệu của một hoặc nhiều cột trong khung dữ liệu gấu trúc để đáp ứng các nhu cầu tính toán nhất định. Có một số hàm hoặc phương thức cài sẵn có sẵn trong gấu trúc có thể đạt được điều này.
Sử dụng astype ()
Phương thức astype () chúng ta có thể áp đặt kiểu dữ liệu mới cho một cột hiện có hoặc tất cả các cột của khung dữ liệu gấu trúc. Trong ví dụ dưới đây, chúng tôi chuyển đổi tất cả các cột hiện có thành kiểu dữ liệu chuỗi.
Ví dụ
import pandas as pd #Sample dataframe df = pd.DataFrame({ 'DayNo': [1, 2, 3, 4, 5,6,7], 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'], 'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]}) # Exisitng Data types print(df.dtypes) #Convert to string data type df_str = df.astype(str) # Verify the conversion print("***After Conversion***") print(df_str.dtypes)
Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
DayNo int64 Name object Qty float64 dtype: object ***After Conversion*** DayNo object Name object Qty object dtype: object
Sử dụng to_numeric ()
Chúng tôi có thể chuyển đổi các số hiện được đánh dấu là chuỗi trong khung dữ liệu thành số bằng to_numeric ().
Ví dụ
import pandas as pd # Example dataframe df = pd.DataFrame({ 'DayNo': [1, 2, 3, 4, 5,6,7], 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'], 'Qty': [2.6, 5, 11.8, 2, 5.6,0,0.25]}) df_str = df.astype(str) print(df_str.dtypes) #Applying conversion print("After Conversion:") df_num = pd.to_numeric(df_str.DayNo) print('DayNo:',df_num.dtypes)
Chạy đoạn mã trên cho chúng ta kết quả sau -
Đầu ra
DayNo object Name object Qty object dtype: object After Conversion: DayNo: int64
Sử dụng inv_objects ()
Đây là một phương pháp chuyển đổi mềm trong đó chúng tôi chuyển đổi các cột của DataFrame có kiểu dữ liệu đối tượng thành một loại cụ thể hơn.
Ví dụ
import pandas as pd # Example dataframe df = pd.DataFrame({ 'DayNo': [1, 2, 3, 4, 5,6,7], # 'Name': ['Sun', 'Mon', 'Tue', 'Wed', 'Thu','Fri','Sat'], 'Qty': ['2.6', '5', '11.8', '2', '5.6','0','0.25']}, dtype='object') print(df.dtypes) #Applying conversion print("After Conversion:") df_new = df.infer_objects() print(df_new.dtypes)
Chạy đoạn mã trên cho chúng ta kết quả sau -
Đầu ra
DayNo object Qty object dtype: object After Conversion: DayNo int64 Qty object dtype: object