Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah fungsi astype() dalam Python
Fungsi astype() ialah kaedah yang berkuasa dalam Python, terutamanya digunakan dalam pustaka pandas untuk menukar lajur atau set data dalam DataFrame atau Siri kepada jenis data tertentu. Ia juga tersedia dalam NumPy untuk menghantar elemen tatasusunan kepada jenis yang berbeza.
Fungsi astype() digunakan untuk menghantar jenis data objek panda (seperti Siri atau DataFrame) atau tatasusunan NumPy ke dalam jenis lain.
DataFrame.astype(dtype, copy=True, errors='raise')
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Jenis data sasaran yang anda ingin tukarkan data. Ini boleh ditentukan menggunakan:
import pandas as pd # Example DataFrame df = pd.DataFrame({'A': ['1', '2', '3'], 'B': [1.5, 2.5, 3.5]}) # Convert column 'A' to integer df['A'] = df['A'].astype(int) print(df.dtypes)
Output:
A int64 B float64 dtype: object
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
Output:
DataFrame.astype(dtype, copy=True, errors='raise')
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Output:
import pandas as pd # Example DataFrame df = pd.DataFrame({'A': ['1', '2', '3'], 'B': [1.5, 2.5, 3.5]}) # Convert column 'A' to integer df['A'] = df['A'].astype(int) print(df.dtypes)
A int64 B float64 dtype: object
Output:
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
A float64 B int64 dtype: object
Output:
df = pd.DataFrame({'A': ['1', 'two', '3'], 'B': [1.5, 2.5, 3.5]}) # Attempt conversion with errors='ignore' df['A'] = df['A'].astype(int, errors='ignore') print(df)
A B 0 1 1.5 1 two 2.5 2 3 3.5
Output:
import numpy as np # Example array arr = np.array([1.1, 2.2, 3.3]) # Convert to integer arr_int = arr.astype(int) print(arr_int)
[1 2 3]
Sebelum Pengoptimuman (Penggunaan Memori Asal):
arr = np.array([1.1, 2.2, 3.3]) # Attempt an unsafe conversion try: arr_str = arr.astype(str, casting='safe') except TypeError as e: print(e)
Selepas Pengoptimuman (Penggunaan Memori Dioptimumkan):
Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'
Penggunaan Memori Asal:
Penggunaan Memori Dioptimumkan:
df = pd.DataFrame({'A': ['2022-01-01', '2023-01-01'], 'B': ['True', 'False']}) # Convert to datetime and boolean df['A'] = pd.to_datetime(df['A']) df['B'] = df['B'].astype(bool) print(df.dtypes)
Ralat Senyap dengan ralat='ignore': Gunakan dengan berhati-hati kerana ia mungkin gagal untuk menukar secara senyap.
Kehilangan Ketepatan: Menukar daripada jenis ketepatan lebih tinggi (cth., float64) kepada jenis ketepatan lebih rendah (cth., float32).
A datetime64[ns] B bool dtype: object
Output:
import pandas as pd # Original DataFrame df = pd.DataFrame({'A': [1, 2, 3], 'B': [1.1, 2.2, 3.3]}) print("Original memory usage:") print(df.memory_usage()) # Downcast numerical types df['A'] = df['A'].astype('int8') df['B'] = df['B'].astype('float32') print("Optimized memory usage:") print(df.memory_usage())
Index 128 A 24 B 24 dtype: int64
Output:
DataFrame.astype(dtype, copy=True, errors='raise')
Fungsi astype() ialah alat serba boleh untuk penukaran jenis data dalam kedua-dua panda dan NumPy. Ia membenarkan kawalan terperinci ke atas tingkah laku penghantaran, pengoptimuman memori dan pengendalian ralat. Penggunaan parameternya yang betul, seperti ralat dalam panda dan penghantaran dalam NumPy, memastikan transformasi jenis data yang mantap dan cekap.
Atas ialah kandungan terperinci Apakah fungsi astype() dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!