Maison > Article > développement back-end > Comment convertir efficacement un Pandas DataFrame avec des valeurs manquantes en un tableau NumPy ?
La méthode la plus efficace pour convertir une trame de données Pandas avec des valeurs manquantes en un NumPy le tableau se fait via df.to_numpy(). Elle offre plusieurs avantages par rapport aux méthodes plus anciennes telles que df.values, notamment :
<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>
Bien que to_numpy ne prenne pas en charge la préservation directe des Dtypes, vous pouvez utiliser np.rec.fromrecords pour obtenir cet effet.
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!