Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menukar Pandas DataFrame dengan nilai yang hilang ke dalam tatasusunan NumPy dengan cekap?
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:
<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>
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>
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!