Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh menukar Pandas DataFrame dengan nilai yang tiada kepada tatasusunan NumPy menggunakan `df.to_numpy()` dan mengekalkan jenis data?

Bagaimanakah saya boleh menukar Pandas DataFrame dengan nilai yang tiada kepada tatasusunan NumPy menggunakan `df.to_numpy()` dan mengekalkan jenis data?

Linda Hamilton
Linda Hamiltonasal
2024-11-06 03:57:02731semak imbas

How can I convert a Pandas DataFrame with missing values into a NumPy array using `df.to_numpy()` and preserve data types?

Tukar Bingkai Data Pandas dengan Nilai Hilang kepada NumPy Array

Menggunakan df.to_numpy()

Untuk menukar bingkai data Pandas dengan nilai yang tiada kepada NumPy tatasusunan dengan np.nan mewakili nilai yang hilang, gunakan kaedah df.to_numpy(). Ia menyediakan cara yang konsisten dan boleh dipercayai untuk mendapatkan tatasusunan NumPy daripada kedua-dua bingkai data dan objek indeks/siri.

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

df = pd.DataFrame({
    "A": [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1],
    "B": [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan],
    "C": [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan],
}, index=[1, 2, 3, 4, 5, 6, 7])

np_array = df.to_numpy()
print(np_array)</code>

Ini akan mengeluarkan tatasusunan NumPy dengan nilai yang tiada diwakili sebagai np.nan:

[[ nan  0.2  nan]
 [ nan  nan  0.5]
 [ nan  0.2  0.5]
 [ 0.1  0.2  nan]
 [ 0.1  0.2  0.5]
 [ 0.1  nan  0.5]
 [ 0.1  nan  nan]]

Memelihara Jenis Data

Untuk mengekalkan jenis data dalam tatasusunan NumPy, gunakan fungsi np.rec.fromrecords():

<code class="python">v = df.reset_index()
np_array_dtypes = np.rec.fromrecords(v, names=v.columns.tolist())
print(np_array_dtypes)</code>

Ini akan mengeluarkan tatasusunan NumPy dengan yang asal jenis data dipelihara seperti berikut:

rec.array([('1', 1, 0.2, 0.5), ('2', 2, np.nan, 0.5), ('3', 3, 0.2, 0.5),
           ('4', 4, 0.2, np.nan), ('5', 5, 0.2, 0.5), ('6', 6, np.nan, 0.5),
           ('7', 7, np.nan, np.nan)],
          dtype=[('index', '<U1'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar Pandas DataFrame dengan nilai yang tiada kepada tatasusunan NumPy menggunakan `df.to_numpy()` dan mengekalkan jenis data?. 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