cari
Rumahpembangunan bahagian belakangTutorial PythonApakah fungsi astype() dalam Python

What is astype() function in 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>




<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)
  1. Ralat Senyap dengan ralat='ignore': Gunakan dengan berhati-hati kerana ia mungkin gagal untuk menukar secara senyap.

  2. 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!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Apakah alternatif untuk menggabungkan dua senarai dalam Python?Apakah alternatif untuk menggabungkan dua senarai dalam Python?May 09, 2025 am 12:16 AM

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.

Python: Cara yang cekap untuk menggabungkan dua senaraiPython: Cara yang cekap untuk menggabungkan dua senaraiMay 09, 2025 am 12:15 AM

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.

Disusun vs bahasa yang ditafsirkan: kebaikan dan keburukanDisusun vs bahasa yang ditafsirkan: kebaikan dan keburukanMay 09, 2025 am 12:06 AM

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

Python: Untuk dan sementara gelung, panduan paling lengkapPython: Untuk dan sementara gelung, panduan paling lengkapMay 09, 2025 am 12:05 AM

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.

Python Concatenate menyenaraikan ke dalam rentetanPython Concatenate menyenaraikan ke dalam rentetanMay 09, 2025 am 12:02 AM

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

Pendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanPendekatan Hibrid Python: Kompilasi dan Tafsiran DigabungkanMay 08, 2025 am 12:16 AM

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

Ketahui perbezaan antara gelung 'untuk' dan 'sementara' PythonKetahui perbezaan antara gelung 'untuk' dan 'sementara' PythonMay 08, 2025 am 12:11 AM

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

Senarai concatenate python dengan penduaSenarai concatenate python dengan penduaMay 08, 2025 am 12:09 AM

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.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

mPDF

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

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MantisBT

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

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa