Maison >développement back-end >Tutoriel Python >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 ?

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 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-06 03:57:02837parcourir

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

Convertir une trame de données Pandas avec des valeurs manquantes en tableau NumPy

Utiliser df.to_numpy()

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]]

Préservation des types de données

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn