Maison  >  Article  >  développement back-end  >  Comment convertir un DataFrame Pandas avec des valeurs manquantes en un tableau NumPy ?

Comment convertir un DataFrame Pandas avec des valeurs manquantes en un tableau NumPy ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 12:17:29496parcourir

How to Convert a Pandas DataFrame with Missing Values to a NumPy Array?

Convertir un DataFrame Pandas avec des valeurs manquantes en un tableau NumPy

La conversion d'un DataFrame Pandas contenant des valeurs manquantes en un tableau NumPy est une tâche courante dans l'analyse des données. Le résultat souhaité est que np.nan représente les valeurs manquantes.

Utilisation de df.to_numpy()

La méthode recommandée pour cette conversion est d'utiliser la méthode df.to_numpy() :

<code class="python">import numpy as np
import pandas as pd

# Create a DataFrame with missing values
index = [1, 2, 3, 4, 5, 6, 7]
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]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)

# Convert to NumPy array
np_array = df.to_numpy()
print(np_array)</code>

Cela affichera :

<code class="python">array([[ 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]])</code>

Préservation des types de données

Pour conserver les types de données dans le tableau NumPy de sortie, vous pouvez utiliser la méthode df.to_records() :

<code class="python">records = df.to_records()
print(records.dtype)</code>

Cela affichera :

<code class="python">[('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')]</code>

où O représente le type d'objet (index) et f8 représente le type float64 (les valeurs).

Utilisation de np .rec.fromrecords, vous pouvez convertir les enregistrements en un tableau NumPy structuré :

<code class="python">import numpy as np

np_array = np.rec.fromrecords(records, names=df.columns)
print(np_array.dtype)</code>

Cela affichera les mêmes types de données que les enregistrements.

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