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> <hr> <h3> <strong>Penjelasan:</strong> </h3> <ul> <li> <p><strong>Penggunaan Memori Asal:</strong></p> <ul> <li>Lajur A sebagai int64 menggunakan 24 bait (8 bait setiap elemen × 3 elemen).</li> <li>Lajur B sebagai float64 menggunakan 24 bait (8 bait setiap elemen × 3 elemen).</li> </ul> </li> <li> <p><strong>Penggunaan Memori Dioptimumkan:</strong></p> <ul> <li>Lajur A sebagai int8 menggunakan 3 bait (1 bait setiap elemen × 3 elemen).</li> <li>Lajur B sebagai float32 menggunakan 12 bait (4 bait setiap elemen × 3 elemen).</li> </ul> </li> </ul> <h2> Penggunaan memori dikurangkan dengan ketara dengan menggunakan jenis data yang lebih kecil, terutamanya apabila bekerja dengan set data yang besar. </h2> <h3> <strong>Perangkap Biasa</strong> </h3> <ol> <li> <strong>Penukaran Tidak Sah</strong>: Menukar jenis yang tidak serasi (cth., rentetan kepada jenis angka apabila nilai bukan angka wujud). </li> </ol> <pre class="brush:php;toolbar:false">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!

Terdapat banyak kaedah untuk menyambungkan dua senarai dalam Python: 1. Pengendali menggunakan, yang mudah tetapi tidak cekap dalam senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan operator =, yang kedua -duanya cekap dan boleh dibaca; 4. Gunakan fungsi itertools.Chain, yang efisien memori tetapi memerlukan import tambahan; 5. Penggunaan senarai parsing, yang elegan tetapi mungkin terlalu kompleks. Kaedah pemilihan harus berdasarkan konteks dan keperluan kod.

Terdapat banyak cara untuk menggabungkan senarai Python: 1. Menggunakan pengendali, yang mudah tetapi tidak memori yang cekap untuk senarai besar; 2. Gunakan kaedah Extend, yang cekap tetapi akan mengubah suai senarai asal; 3. Gunakan itertools.chain, yang sesuai untuk set data yang besar; 4. Penggunaan * pengendali, bergabung dengan senarai kecil hingga sederhana dalam satu baris kod; 5. Gunakan numpy.concatenate, yang sesuai untuk set data dan senario yang besar dengan keperluan prestasi tinggi; 6. Gunakan kaedah tambahan, yang sesuai untuk senarai kecil tetapi tidak cekap. Apabila memilih kaedah, anda perlu mempertimbangkan saiz senarai dan senario aplikasi.

Compiledlanguagesofferspeedandsecurity, whilintpretedLanguagesprovideoeSeAfuseAndPortability.1) compiledLanguageslikec arefasterandsecureButhavelongerDevelopmentCyclesandplatformdependency.2) interpretedLanguagePyePyhonareeAseAreeAseaneAseaneSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSioSeaneaneAseaneaneAseaneaneAdoSioSiAdaSiAdoeSeaneAdoeSeaneAdoeSeanDoReAseanDOREPYHOREADOREB

Di Python, A untuk gelung digunakan untuk melintasi objek yang boleh dimakan, dan gelung sementara digunakan untuk melakukan operasi berulang kali apabila keadaan berpuas hati. 1) Untuk contoh gelung: melintasi senarai dan mencetak unsur -unsur. 2) Walaupun contoh gelung: Tebak permainan nombor sehingga anda rasa betul. Menguasai prinsip kitaran dan teknik pengoptimuman dapat meningkatkan kecekapan dan kebolehpercayaan kod.

Untuk menggabungkan senarai ke dalam rentetan, menggunakan kaedah Join () dalam Python adalah pilihan terbaik. 1) Gunakan kaedah Join () untuk menggabungkan elemen senarai ke dalam rentetan, seperti '' .join (my_list). 2) Untuk senarai yang mengandungi nombor, tukar peta (str, nombor) ke dalam rentetan sebelum menggabungkan. 3) Anda boleh menggunakan ekspresi penjana untuk pemformatan kompleks, seperti ','. Sertai (f '({Fruit})' forfruitinFruits). 4) Apabila memproses jenis data bercampur, gunakan peta (str, mixed_list) untuk memastikan semua elemen dapat ditukar menjadi rentetan. 5) Untuk senarai besar, gunakan '' .join (large_li

Pythonusesahybridapproach, combiningcompilationtobytecodeandinterpretation.1) codeiscompiledtopplatform-independentbytecode.2) byteCodeisinterpretedbythepythonvirtualmachine, enhancingficiencyAndortability.

TheKeydifferencesbetweenpython's "for" and "while" loopsare: 1) "untuk" loopsareidealforiteratingoversequencesorknowniterations, while2) "manakala" loopsarebetterforcontinuinguntilaconditionismetwithoutpredefinediterations.un

Di Python, anda boleh menyambungkan senarai dan menguruskan elemen pendua melalui pelbagai kaedah: 1) Gunakan pengendali atau melanjutkan () untuk mengekalkan semua elemen pendua; 2) Tukar ke set dan kemudian kembali ke senarai untuk mengalih keluar semua elemen pendua, tetapi pesanan asal akan hilang; 3) Gunakan gelung atau senarai pemantauan untuk menggabungkan set untuk menghapuskan elemen pendua dan mengekalkan urutan asal.


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

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
