Maison >développement back-end >Tutoriel Python >Comment convertir efficacement les DataFrames Pandas en tableaux NumPy ?
L'utilisation de df.to_numpy() est la méthode recommandée car elle fournit un moyen cohérent et fiable d'obtenir des tableaux NumPy à partir d'objets pandas. Il est défini sur les objets Index, Series et DataFrame et, par défaut, il renvoie une vue des données sous-jacentes, ce qui signifie que toute modification apportée au tableau NumPy sera également reflétée dans l'objet pandas. Si une copie des données est nécessaire, le paramètre copy=True peut être utilisé.
Il est important de noter que df.values ne sera pas obsolète dans la version actuelle de pandas, mais il est recommandé d'utiliser df.to_numpy() pour le nouveau code et de migrer vers la nouvelle API dès que possible.
Pour conserver les types lors de la conversion d'un dataframe pandas en tableau NumPy, la méthode DataFrame.to_records() peut être utilisée.
importer des pandas en tant que pd<br>importer numpy en tant que np</p> <p>index = [1, 2, 3, 4, 5, 6, 7]<br>a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] <br>b = [0,2, np.nan, 0,2, 0,2, 0,2, np.nan, np.nan]<br>c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]<br>df = pd.DataFrame({'A' : a, 'B' : b, 'C' : c}, index=index)<br>df = df.rename_axis('ID')</p> <h1>Convertir le DataFrame en un tableau NumPy avec des types préservés</h1> <p>array = df.to_records()</p> <h1>Imprimer le NumPy array</h1> <p>print(array)<br>
La sortie du code est la suivante :
<br> rec.array([('ID', 'index', 'A', 'B', 'C')]</p> <pre class="brush:php;toolbar:false"> [1, 'a', nan, 0.2, nan], [2, 'b', nan, nan, 0.5], [3, 'c', nan, 0.2, 0.5], [4, 'd', 0.1, 0.2, nan], [5, 'e', 0.1, 0.2, 0.5], [6, 'f', 0.1, nan, 0.5], [7, 'g', 0.1, nan, nan]), dtype=[('ID', '<i8'), ('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])
Comme vous pouvez le voir, le tableau NumPy préserve les types des colonnes dans le DataFrame.
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!