Apakah fungsi astype() dalam Python
Memahami 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.
Penggunaan Asas astype()
Fungsi astype() digunakan untuk menghantar jenis data objek panda (seperti Siri atau DataFrame) atau tatasusunan NumPy ke dalam jenis lain.
Sintaks untuk panda:
DataFrame.astype(dtype, copy=True, errors='raise')
Sintaks untuk NumPy:
ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)
Parameter Utama
1. dtype
Jenis data sasaran yang anda ingin tukarkan data. Ini boleh ditentukan menggunakan:
- Satu jenis (cth., float, int, str).
- Kamus memetakan nama lajur kepada jenis (untuk DataFrames panda).
2. salinan (panda dan NumPy)
- Lalai: Betul
- Tujuan: Sama ada hendak mengembalikan salinan data asal (jika Benar) atau mengubah suainya di tempatnya (jika Salah).
3. ralat (panda sahaja)
-
Pilihan:
- 'naikkan' (lalai): Naikkan ralat jika penukaran gagal.
- 'abaikan': Abaikan ralat secara senyap.
4. pesanan (NumPy sahaja)
- Mengawal susun atur memori tatasusunan output. Pilihan:
- 'C': C-pesanan bersebelahan.
- 'F': Perintah bersebelahan Fortran.
- 'A': Gunakan perintah Fortran jika input adalah Fortran-bersambung, jika tidak, pesanan C.
- 'K': Padankan reka letak tatasusunan input.
5. pemutus (NumPy sahaja)
- Mengawal tingkah laku pemutus:
- 'tidak': Tiada penghantaran dibenarkan.
- 'equiv': Hanya perubahan tertib bait dibenarkan.
- 'selamat': Hanya hantaran yang mengekalkan nilai dibenarkan.
- 'same_kind': Hanya cast atau cast yang selamat dalam jenis (cth., float -> int) dibenarkan.
- 'tidak selamat': Sebarang penukaran data dibenarkan.
6. subok (NumPy sahaja)
- Jika Benar, subkelas dilalui; jika Salah, tatasusunan yang dikembalikan akan menjadi tatasusunan kelas asas.
Contoh
1. Penukaran Asas dalam panda
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
2. Pemetaan Kamus untuk Berbilang Lajur
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
Output:
DataFrame.astype(dtype, copy=True, errors='raise')
3. Menggunakan errors='ignore'
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)
- Penukaran gagal untuk 'dua', tetapi tiada ralat dibangkitkan.
4. Menggunakan astype() dalam NumPy
A int64 B float64 dtype: object
Output:
# Convert multiple columns df = df.astype({'A': float, 'B': int}) print(df.dtypes)
5. Menghantar dalam NumPy dengan casting='safe'
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)
6. Mengendalikan Jenis Bukan Berangka dalam panda
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)
7. Pengoptimuman Memori Menggunakan astype()
Kod:
[1 2 3]
Output:
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'
Penjelasan:
-
Penggunaan Memori Asal:
- Lajur A sebagai int64 menggunakan 24 bait (8 bait setiap elemen × 3 elemen).
- Lajur B sebagai float64 menggunakan 24 bait (8 bait setiap elemen × 3 elemen).
-
Penggunaan Memori Dioptimumkan:
- Lajur A sebagai int8 menggunakan 3 bait (1 bait setiap elemen × 3 elemen).
- Lajur B sebagai float32 menggunakan 12 bait (4 bait setiap elemen × 3 elemen).
Penggunaan memori dikurangkan dengan ketara dengan menggunakan jenis data yang lebih kecil, terutamanya apabila bekerja dengan set data yang besar.
Perangkap Biasa
- Penukaran Tidak Sah: Menukar jenis yang tidak serasi (cth., rentetan kepada jenis angka apabila nilai bukan angka wujud).
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).
Contoh Terperinci
1. Penghantaran Jenis Data Kompleks
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())
2. Menggunakan astype() dalam NumPy untuk Tatasusunan Berstruktur
Index 128 A 24 B 24 dtype: int64
Output:
DataFrame.astype(dtype, copy=True, errors='raise')
Ringkasan
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.
