Bagaimana untuk menukar Pandas DataFrame dengan nilai yang hilang ke dalam tatasusunan NumPy dengan cekap?

Mary-Kate Olsen
Lepaskan: 2024-11-05 02:42:02
asal
640 orang telah melayarinya

How to efficiently convert a Pandas DataFrame with missing values into a NumPy array?

Tukar Bingkai Data Pandas dengan Nilai Hilang kepada NumPy Array

Kaedah paling berkesan untuk menukar bingkai data Pandas dengan nilai yang tiada kepada NumPy tatasusunan adalah melalui df.to_numpy(). Ia menawarkan beberapa kelebihan berbanding kaedah lama seperti df.values, termasuk:

  • Secara konsisten mengembalikan paparan data asas untuk meminimumkan penggunaan memori.
  • Mengendalikan jenis sambungan dengan menukarkannya kepada jenis NumPy yang sesuai.
  • Memelihara jenis data asal melainkan dinyatakan sebaliknya.

Contoh:

<code class="python">import pandas as pd
import numpy as np

# Create a DataFrame with missing values
df = pd.DataFrame({'A': [np.nan, np.nan, 0.1, 0.1, 0.1, 0.1],
                   'B': [0.2, np.nan, 0.2, 0.2, np.nan, np.nan],
                   'C': [np.nan, 0.5, 0.5, np.nan, 0.5, np.nan]})

# Convert to a NumPy array with missing values represented as `np.nan`
array = df.to_numpy()

# Result:
# array([[ nan,  0.2,  nan],
#        [ nan,  nan,  0.5],
#        [ 0.1,  0.2,  0.5],
#        [ 0.1,  0.2,  nan],
#        [ 0.1,  nan,  0.5],
#        [ 0.1,  nan,  nan]])</code>
Salin selepas log masuk

Memelihara Dtypes:

Walaupun to_numpy tidak menyokong pengekalan Dtypes secara langsung, anda boleh menggunakan np.rec.fromrecords untuk mencapai kesan ini.

<code class="python"># Create a DataFrame with mixed data types
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7.2, 8.1, 9.3]})

# Convert to a structured array with preserved Dtypes
struct_array = np.rec.fromrecords(
    df.reset_index(),
    names=list(df.columns) + ['index']
)

# Result:
# rec.array([('a', 1, 4, 7.2), ('b', 2, 5, 8.1), ('c', 3, 6, 9.3)],
#           dtype=[('index', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<f8')])</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menukar Pandas DataFrame dengan nilai yang hilang ke dalam tatasusunan NumPy dengan cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!