Maison > Article > développement back-end > Comment puis-je convertir un Pandas DataFrame avec des valeurs manquantes en un tableau NumPy à l'aide de « df.to_numpy() » et conserver les types de données ?
Pour convertir une trame de données Pandas avec des valeurs manquantes en un NumPy tableau avec np.nan représentant les valeurs manquantes, utilisez la méthode df.to_numpy(). Il fournit un moyen cohérent et fiable d'obtenir des tableaux NumPy à partir de trames de données et d'objets index/série.
<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>
Cela générera un tableau NumPy avec des valeurs manquantes représentées par 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]]
Pour conserver les types de données dans le tableau NumPy, utilisez la fonction 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>
Cela générera un tableau NumPy avec l'original types de données conservés comme suit :
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')])
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!